在 apache 中設定 ssl 進行本地測試
鍵入以下命令啟用模組:
sudo a2enmod ssl
重新啟動 Web 伺服器(apache2),以便識別更改:
sudo service apache2 restart
可選(但一個好主意):建立一個包含新證書檔案的目錄:
sudo mkdir /etc/apache2/ssl
在該目錄中建立金鑰和自簽名證書:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/your_domain.key -out /etc/apache2/ssl/your_domain.crt
系統會向你詢問一系列有關安全證書的問題。在提示時回答每個問題,但請使用你自己公司的資訊。這是一個例子:
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Pennsylvania
Locality Name (eg, city) []:Philadelphia
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Cool Company
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:test_domain.com
Email Address []:my_email@test_domain.com
使用 root 許可權開啟檔案:
sudo vim /etc/apache2/sites-available/default-ssl.conf
通過將伺服器詳細資訊和證書位置新增到 default-ssl.conf 檔案來配置虛擬主機:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin admin@example.com
ServerName your_domain.com
ServerAlias www.your_domain.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/your_domain.crt
SSLCertificateKeyFile /etc/apache2/ssl/your_domain.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /var/www/html>
SSLOptions +StdEnvVars
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
儲存更改並輸入以下內容以啟用新的 ssl 配置:
sudo a2ensite default-ssl.conf
要啟用新配置,請執行:
service apache2 reload
現在,嘗試使用 https 在本地訪問你的網站!