SSL 自签名证书 - 它们如何在客户端上显示以及如何配置?

SSL 自签名证书 - 它们如何在客户端上显示以及如何配置?

我使用自签名密钥将 SSL 添加到网站(Apache 2.2 w/ Centos 6)。Chrome、FF 和 IE 显示以下内容:

铬合金

您的连接不是私密的攻击者可能试图从 test.example.com 窃取您的信息(例如密码、消息或信用卡)。NET::ERR_CERT_AUTHORITY_INVALID

FF

您的连接不安全 test.example.com 的所有者对其网站的配置不当。为了保护您的信息不被盗用,Firefox 未连接到此网站。

IE

此网站的安全证书存在问题 这可能意味着有人试图欺骗您或窃取您发送到服务器的任何信息。您应该立即关闭此网站。

这是预期的吗?如果不是,应该如何配置网站。以下是我所做的。

Apache 配置为:

<VirtualHost *:443>
    ServerName test.example.com
    DocumentRoot /var/www/test/html
    ErrorDocument 404 /error-404.html
    SSLEngine on
    SSLCertificateKeyFile /etc/pki/tls/private/test_key.pem
    SSLCertificateFile /etc/pki/tls/certs/test_crt.pem
    <Directory "/var/www/test/html">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        RewriteEngine On
        #Include /var/www/httpd/private.conf
    </Directory>
</VirtualHost>

我的密钥生成如下:

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -aes-128-cbc -out test_key.pem
# For the following command, left all as default values
openssl req -new -key test_key.pem -sha256 -days 365 -out test_csr.pem
cp test_key.pem test_key.pem.tmp
openssl rsa -in test_key.pem.tmp -out test_key.pem
rm -f test_key.pem.tmp
openssl x509 -req -in test_csr.pem -signkey test_key.pem -sha256 -days 365 -out test_crt.pem
sudo cp test_key.pem /etc/pki/tls/private/test_key.pem
sudo cp test_csr.pem /etc/pki/tls/private/test_csr.pem
sudo cp test_crt.pem /etc/pki/tls/certs/test_crt.pem
rm -f test_key.pem
rm -f test_csr.pem
rm -f test_crt.pem

答案1

这是浏览器的预期行为。这些警告是为了阻止用户访问此网站,因为浏览器无法确定这是否确实是此网站的预期证书,还是有人冒充该网站,就像中间人攻击一样。本质上,自签名证书是在说“相信我,我是正确的证书”,并且没有办法验证这一说法。

答案2

由于这是您的自签名证书并且不属于任何证书颁发机构,因此浏览器肯定会抛出错误。

如果是https,第一步是握手。在握手过程中,浏览器会检查服务器上安装的证书的权威性是否在浏览器的证书列表中。由于这个证书是你签名的,所以它绝对不会在浏览器的列表中。

如果您仍在本地工作,则可以在浏览器中导入证书,如果证书中还提供了任何域名,则需要修改主机文件,在 Linux 中该文件保存在 /etc 下,而在 Windows 中该文件保存在 c:\Windows\System32\Drivers\etc\ 下

祝你好运.... :)

相关内容