Cra*_*cis 5 ssl nginx https tls apache-2.2
您刚刚获得了一个新的 HTTPS (SSL/TLS) 证书,您希望得到正确的中间证书。
这是在 Apache 中设置的:
SSLCertificateKeyFile /etc/ssl/www.example.com.key
SSLCertificateChainFile /etc/ssl/www.example.com.chn
SSLCertificateFile /etc/ssl/www.example.com.crt
Run Code Online (Sandbox Code Playgroud)
或者在 Nginx 中使用:
ssl_certificate_key /etc/apache2/ssl/www.example.com.key;
ssl_certificate /etc/apache2/ssl/www.example.com.pem;
Run Code Online (Sandbox Code Playgroud)
记住apachectl configtest只检查这些文件是否存在;并且nginx -t“如果网站证书不是 crt 文件中的第一个,并且密钥错误,则会失败”(感谢Drifter104)。
那么,如何在重新启动之前检查所有内容?
您有错误的中间体(例如,GeoTrust 在一页上列出了它们的所有中间体)。
您不小心将中间证书文件与您的网站证书文件混合在一起。
您包含了根证书(影响性能,因为这会发送不必要的数据)。
您缺少一个或多个中级证书。
证书用于错误的密钥。
您已将这些文件保留为服务器上的任何人都可以读取(例如chmod 644)。
提取有关密钥、CSR 或证书文件的信息:
openssl rsa -check -in "www.example.com.key";
openssl req -text -noout -verify -in "www.example.com.csr";
openssl x509 -text -noout -in "www.example.com.crt";
Run Code Online (Sandbox Code Playgroud)
使用 sha256 获取公钥哈希(例如用于设置 HPKP):
openssl rsa -in "www.example.com.key" -pubout -outform der | openssl dgst -sha256 -binary | openssl enc -base64
openssl x509 -in "www.example.com.chn" -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
openssl req -in "www.example.com.csr" -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
openssl s_client -connect www.example.com:443 | openssl x509 -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1437 次 |
| 最近记录: |