首页 \ 问答 \ SSL认证链不适用于自签名证书(SSL chain of certification not working for a self signed certificate)

SSL认证链不适用于自签名证书(SSL chain of certification not working for a self signed certificate)

客户给了我们3个证书,这些证书按顺序安装在Windows服务器上,并且:

  1. 由Verisign发布,适用于Symantec(仅限证书,作为中间件安装)
  2. Symantec发布,适用于CompanyX(仅限证书,安装为中间版)
  3. CompanyX发布,适用于CompanyX(证书和密钥,安装为个人)

在mmc中,当我检查#2时,我可以看到链为:

Verisign(root) - > Verisign(中间) - > Symantec(中级)

检查#3(自签名证书)时,没有链。 只有CompanyX。

似乎Windows无法在最后一个中间证书和自签名证书之间建立链,因此当客户端连接到Web服务器时,他们会看到自签名或不受信任的证书警告,可能是因为服务器未发布中间证书。

我已经验证了通用名称是否完全匹配,并重复了几次安装程序。 我在安装证书时做错了吗? 我错过了什么吗?


A customer has given us 3 certificates, which were installed on a windows server in the order and :

  1. Issued by Verisign, for Symantec (certificate only, installed as intermediate)
  2. Issued by Symantec, for CompanyX (certificate only, installed as intermediate)
  3. Issued by CompanyX, for CompanyX (certificate and key, installed as Personal)

In mmc, when I inspect #2, I can see the chain as:

Verisign (root) -> Verisign (intermediate) --> Symantec (intermediate)

When inspecting #3 (the self signed certificate), there is no chain. There's only CompanyX.

Seems like windows is failing to establish the chain between the last intermediate and the self signed certificate, so when clients connect to the web server, they see a self-signed or untrusted certificate warning, presumably because the server is not publishing the intermediate certificates.

I've already verified that common names match exactly, and repeated the installation procedures a few times. Did I do something wrong installing the certificates? Am I missing something?


原文:https://stackoverflow.com/questions/36629306
更新时间:2022-08-20 13:08

最满意答案

你需要使用反射。 MakeGenericType允许您使用特定的泛型参数获取Type ,然后您可以根据需要获取并调用任何方法。

void Main()
{
    Type t = typeof(int);
    Type at = typeof(A<>).MakeGenericType(t);
    at.GetMethod("B").Invoke(null, new object[]{"test"});
}

public class A<T>
{
    public static void B(string s)
    {
        Console.WriteLine(s+" "+typeof(T).Name);
    }
}

作为性能优化,您可以使用反射来获取每种类型的委托,然后您可以调用它而无需进一步反映。

Type t = typeof(int);
Type at = typeof(A<>).MakeGenericType(t);
Action<string> action = (Action<string>)Delegate.CreateDelegate(typeof(Action<string>), at.GetMethod("B"));
action("test");

You need to use reflection. MakeGenericType allows you to get the Type with specific generic arguments and then you can get and call any method on it as you like.

void Main()
{
    Type t = typeof(int);
    Type at = typeof(A<>).MakeGenericType(t);
    at.GetMethod("B").Invoke(null, new object[]{"test"});
}

public class A<T>
{
    public static void B(string s)
    {
        Console.WriteLine(s+" "+typeof(T).Name);
    }
}

As a performance optimization you could use reflection to get a delegate for each type which you then can invoke without further reflection.

Type t = typeof(int);
Type at = typeof(A<>).MakeGenericType(t);
Action<string> action = (Action<string>)Delegate.CreateDelegate(typeof(Action<string>), at.GetMethod("B"));
action("test");

相关问答

更多

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。