在 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 在本地访问你的网站!