configurationApache以提供正确的证书链

我正在Red Hat 6.3上运行Apache 2.2.15,并且无法使证书链正常工作。

我正在使用我的组织PKI进行证书签名等,这不会将其根证书发布到Internet上。

所以,我正在使用指令SSLCertificateFileSSLCertificateKeyFileSSLCertificateChainFile

我使用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来连接它,如果链接不正常,这将无法在安全模式下工作。