我正在尝试为 Windows 上的 Apache 服务器创建自己的 CA 和服务器证书。
每当我启动 apache 时都会出现“无法配置 CA 证书链!”
apache ssl conf 设置是:
SSLProtocol -all +SSLv2
SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP
SSLCertificateFile "C:/data/server/server.crt"
SSLCertificateKeyFile "c:/data/server/server.key"
SSLCertificateChainFile "c:/data/server/ca.crt"
SSLCACertificateFile "c:/data/server/ca.crt"
我根据 Apache 的“SSL/TLS 强加密:常见问题解答”生成密钥/crts:
生成 CA 密钥/证书:
openssl genrsa -out ca.key 1024
openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out ca.crt
生成服务器密钥/证书:
openssl genrsa -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
我已经卡在这个问题上好几个小时了。有人知道我漏掉了什么吗?似乎可以使用
openssl verify -CAfile ca.crt server.crt
答案1
如果是自签名证书,则不需要该SSLCertfificateChainFile
指令。您没有真正的证书链;您只有根证书和自签名证书,没有中间证书。
此外,您的 SSLProtocol 行和 SSLCipherSuite 将使您的网站成为黑客的乐土。您正在启用 sslv2 和弱/出口级加密密码。
答案2
您确定证书的路径正确吗?在我看来,这不是有效的 Windows 路径。您检查过 Apache 的日志吗?