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