Apache-2.2
SSL 自簽名證書 - 它們如何顯示在客戶端以及如何配置?
我使用自簽名密鑰將 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\驅動程序\等\
祝你好運…. :)