我正在Red Hat 6.3上运行Apache 2.2.15,并且无法使证书链正常工作。
我正在使用我的组织PKI进行证书签名等,这不会将其根证书发布到Internet上。
所以,我正在使用指令SSLCertificateFile , SSLCertificateKeyFile和SSLCertificateChainFile
我使用openssl genrsa创build了我的2048位RSA密钥,然后使用openssl从此密钥创build请求,并使用我们的Windows 2008 R2 CA对其进行签名。
我用SSLCertificateFile指向这个签名的证书文件。
我有的问题是链文件。
我有PEM格式的根证书,中间证书和服务器证书,并尝试了各种这些(连接文本文件)组合来创build链文件,例如
root inter server server inter root inter root root inter
这些都没有工作
为了testing这个,我正在做以下事情:
openssl s_client -connect myserver.com:443 -CAfile root.cer
而我得到的错误是validation返回码:21(无法validation第一个证书)
然而,奇怪的是当我在服务器上运行以下:
openssl s_client -connect 127.0.0.1:443 -CAfile root.cer
它工作正常,我得到一个'0'返回代码,并可以看到输出顶部的证书链。
那么发生了什么?
如果没有链文件,我会在Web浏览器中获得挂锁图标,但是我需要在单独的脚本中使用curl来连接它,如果链接不正常,这将无法在安全模式下工作。