我已经使用以下命令创建了自签名服务器证书、私有服务器密钥和证书颁发机构自己的证书。
openssl genrsa -out ca.key 2048
openssl req -config openssl.cnf -new -x509 -days 365 -key ca.key -out ca.crt
openssl genrsa -out server.key 2048
openssl req -config openssl.cnf -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
然后,我使用下面的命令将它们添加到httpd-ssl.conf中。
SSLCertificateFile "C:/Apache2/conf/server.crt"
SSLCertificateKeyFile "C:/Apache2/conf/server.key"
SSLCertificateChainFile "C:/Apache2/conf/ca.crt"
但是在访问时https://localhost我得到:-
安全连接失败连接到时出错localhost。对等方的证书具有无效签名。(错误代码:sec_error_bad_signature)您试图查看的页面无法显示,因为无法验证接收到的数据的真实性已证实的*请联系网站所有者,将此问题告知他们。
有什么想法吗?
感谢
正常的不可信错误localhost使用了无效的安全证书。证书不受信任,因为它是自签名的。
我的CA证书错误在连接到localhost的过程中发生错误。对等方的证书具有无效签名。
尝试以这种方式重新生成证书:
openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
然后,从服务器证书中删除密码短语,以避免Apache在每次重新启动时询问您密码:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
然后,生成您的自签名证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
之后,只需指定SSLCertificateFile
和SSLCertificateKeyFile
即可使用新证书。
因为自签名证书没有受信任的根证书颁发机构,所以需要将它们添加到浏览器的受信任CA列表中。浏览器无法验证不可信的证书。
这是因为它是一个自签名证书。为了避免出现此消息,您需要对自己进行验证,并从Verisign、GoDaddy等受信任的CA机构购买证书。您也可以尝试来自COMODO Instant SSL 的免费证书
由于您只是在localhost上进行测试,所以不要担心警告。但在生产过程中,这可能会让用户望而却步。