Apache SSL:伺服器證書不包含與伺服器名稱匹配的 ID
我正在嘗試在我的 apache2 網路伺服器上設置 SSL,但它似乎根本不起作用。
我已按照教程使用 openssl 創建證書文件並
/etc/apache2/sites-available/default-ssl.conf
正確配置。每次我嘗試使用 https 打開我的網站時,由於安全問題,我的瀏覽器拒絕連接。它說我沒有正確配置我的網站。
在我
/var/log/apache2/error.log
收到警告,說我的伺服器證書不包含與伺服器名稱匹配的 ID。[Mon Apr 10 11:03:24.041813 2017] [mpm_prefork:notice] [pid 1222] AH00169: caught SIGTERM, shutting down [Mon Apr 10 11:03:30.566578 2017] [ssl:warn] [pid 661] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name [Mon Apr 10 11:03:31.579088 2017] [ssl:warn] [pid 1194] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name [Mon Apr 10 11:03:31.592958 2017] [mpm_prefork:notice] [pid 1194] AH00163: Apache/2.4.25 (Raspbian) OpenSSL/1.0.2k configured -- resuming normal operations [Mon Apr 10 11:03:31.593136 2017] [core:notice] [pid 1194] AH00094: Command line: '/usr/sbin/apache2'
您對如何解決這個問題有任何想法嗎?在此表示感謝!
好的,我注意到這篇文章最近經常被查看,所以似乎很多人都面臨著和我一樣的問題。如果是這樣,那麼這可能會對您有所幫助。
我按照一個簡單的分步教程為我的網路伺服器創建了 SSL 認證。就像那裡的許多教程一樣,我遵循的教程的結果是使用 OpenSSL 的自簽名證書。是的,自簽名,這就是問題所在。瀏覽器無法信任伺服器,因為它的證書是自己簽名的。好吧我也不會…
證書必須由外部可信證書頒發機構 (CA) 簽名。所以我偶然發現了Let’s Encrypt,它可以為你完成所有工作,而且更容易設置,最好的是:它是完全免費的。
安裝
1)刪除您使用 OpenSSL 創建的舊 ssl 證書文件
- 打開反向埠以在 Debian 上獲取 certbot 客戶端。您應該知道,這將為未完成的軟體打開一個洞!僅在您知道自己在做什麼時才安裝軟體包。
echo 'deb http://ftp.debian.org/debian jessie-backports main' | sudo tee /etc/apt/sources.list.d/backports.list
3)更新你的linux系統
sudo apt-get update
- 安裝 certbot
sudo apt-get install python-certbot-apache -t jessie-backports
5)設置apache ServerName和ServerAlias
sudo nano /etc/apache2/sites-available/000-default.conf
6)編輯apache配置文件
<VirtualHost *:80> . . . ServerName example.com ServerAlias www.example.com . . . </VirtualHost>
- 檢查語法是否正確
sudo apache2ctl configtest
8)如果配置文件看起來不錯,重新啟動apache伺服器
sudo systemctl restart apache2
- 使用 certbot 設置證書並按照螢幕上的說明進行操作。
sudo certbot --apache
續訂
Let’s Encrypt 的所有證書有效期為 3 個月。要續訂,您可以手動執行
sudo certbot renew
或將此服務作為 cron 作業自動化
sudo crontab -e
並輸入以下行以在每週一凌晨 2:30 呼叫續訂。
. . . 30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
您可以在此處遵循更詳細的教程:https ://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8