Apache-2.2

SSL 自簽名證書 - 它們如何顯示在客戶端以及如何配置?

  • May 15, 2017

我使用自簽名密鑰將 SSL 添加到網站(Apache 2.2 w/Centos 6)。Chrome、FF 和 IE 顯示以下內容:

鉻合金

您的連接不是私密的 攻擊者可能試圖從 test.example.com 竊取您的資訊(例如,密碼、消息或信用卡)。NET::ERR_CERT_AUTHORITY_INVALID

法郎

您的連接不安全 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

這是瀏覽器的預期行為。這些警告是為了阻止使用者訪問該站點,因為瀏覽器無法確定這實際上是該站點的預期證書還是冒充該站點的人,例如中間人攻擊。本質上,自簽名證書是在說“相信我,我是正確的證書”,並且無法驗證此聲明。

由於這是您的自簽名證書並且不屬於任何證書頒發機構,因此瀏覽器肯定會拋出錯誤。

在 https 的情況下,第一步是握手。在握手過程中,瀏覽器會檢查伺服器上安裝的證書的權限是否在瀏覽器證書列表中。由於此證書是由您簽名的,因此絕不會出現在瀏覽器列表中。

儘管如此,如果您在本地工作,那麼您可以在瀏覽器中導入證書,如果證書中還提供了任何域名,那麼您需要修改主機文件,而在 Linux 中保存在 /etc 下,而在 Windows 中保存在 c 下: \Windows\System32\驅動程序\等\

祝你好運…. :)

引用自:https://serverfault.com/questions/850042