使用mkcert为localhost(本地)站点添加被浏览器信任的证书

使用mkcert为localhost(本地)站点添加被浏览器信任的证书

环境

Windows 2016 LTS 64 bit

PhpStudy 2017 (PHP 7.0.12 nts + Apache)

mkcert for windows

Chrome 73.0.3683.103

使用mkcert生成自签证书

下载mkcert for windows 64bit 如果遇到权限问题,以管理员权限运行。

Alt text

安装根证书

Alt text

签发任意域名的证书

Alt text

Alt text

配置PhpStudy的Apache关于SSL的设置

确保你的apache编译了ssl模块,这是支持ssl证书必要的条件(如果没有,请编译,打开phpstudy——设置——PHP模块扩展——php-openssl前面勾选上)。Alt text

进入到apache目录下,httpd.conf找到#LoadModule ssl_module modules/mod_ssl.so,去掉前面的注释符,使得ssl模块生效(如果该模块已去掉注释,请不用操作)。

Alt text

找到网站配置文件vhosts.conf,按照80的配置,另起一个VirtualHost443

<VirtualHost *:443>
    DocumentRoot "C:\phpStudy\PHPTutorial\WWW\Pigeon"
    ServerName www.pigeon.com
    ServerAlias pigeon
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL
    SSLCertificateFile "C:\phpStudy\PHPTutorial\Apache\conf\ssl\www.pigeon.com.pem" #(服务器上公钥证书路径)
    SSLCertificateKeyFile "C:\phpStudy\PHPTutorial\Apache\conf\ssl\www.pigeon.com.key" #(服务器上私钥证书路径)
    SSLCertificateChainFile "C:\phpStudy\PHPTutorial\Apache\conf\ssl\ca-bundle.crt" #(服务器上证书链路径)
    <Directory "C:\phpStudy\PHPTutorial\WWW\Pigeon">
        Options FollowSymLinks ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

重启apache

apache正常重启后,在浏览器里面输入 https://www.pigeon.com 就能看到安全锁出来啦。

Alt text

HTTP 自动跳转到 HTTPS

进入到apache目录下,httpd.conf找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的注释符

Alt text

在网站根目录创建.htaccess文件

RewriteEngine On 
RewriteCond %{HTTPS}  !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

windows系统中创建以点.开头的文件及文件夹的方法

使用命令行

Alt text


参考资料:

Github·mkcert

phpstudy环境安装配置SSL证书方法

How to Redirect HTTP to HTTPS on Apache