Https协议中的Chain文件在什么情况下是必要的?

正在尝试为网站的部分功能做https加密,目前是测试阶段,所以都是使用openssl命令自己颁发证书,得到一个crt和一个key文件,分别写在Apache的SSLCertificateFile和SSLCertificateKeyFile字段中。

但是看网上的example里面似乎有一个SSLCertificateChainFile字段,经过一番Google发现这个字段在自己颁发证书时似乎是不需要的这个Chain的,但是某些颁发SSL机构颁发出来的证书似乎是需要这个的。

请问有人了解这个么。。。

阅读 6.9k
2 个回答

操作系统/浏览器会内置一些CA(证书颁发机构)的证书,如果你的证书是直接由这些内置CA颁发的,那么就不需要Chain文件,浏览器可以直接识别你的证书。

如果你的证书是由二级CA颁发的,即内置CA颁发给另一个二级CA,然后二级CA再颁发给你,那么就需要Chain文件,否则浏览器不知道你的证书和内置CA的关系。

如果你将自己的CA设置成了内置CA,那么直接由你的CA颁发的证书自然不需要Chain文件。

比較全功能的UA 比如瀏覽器, 可能會自己一層層找中間證書, 這種時候證書鏈不是必須.

有的UA比如wget沒這些功能, 如果你不用自己站點提供證書鏈, 就會不被信任.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏