以下操作皆在mac环境下,win朋友请自行调整命令。
生成证书
安装mkcert
brew install mkcert
brew install nss # if you use Firefox
生成根证书
mkcert -install
通过“钥匙串访问.app”搜索mkcert,并信任证书。
生成个人证书
mkcert my.com localhost 127.0.0.1
证书文件在执行目录中,成功创建之后,会在该目录下生成如下两个文件:
证书 XXX.pem
私钥 XXX-key.pem
Ngixn Server 配置
安装nginx
brew install nginx
修改nginx配置文件
open /usr/local/etc/nginx/nginx.conf
添加在http属性下的server,以localhost为例,注意修改证书和私钥的地址。如果需要添加my.com的,则在配置文件中并行添加其他的server配置。
server {
listen 80;
listen 443 ssl;
server_name localhost;
# 设置 SSL 证书和私钥地址
ssl_certificate /Users/mako/mako-SSL.pem;
ssl_certificate_key /Users/mako/mako-SSL-key.pem;
# SSL 会话配置
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# SSL 协议、加密配置
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
启动或重启nginx服务,选一个即可
启动nginx
nginx
重启nginx
sudo nginx -s reload
访问https://localhost验证是否生效。
(配置其他server后可以验证其他页面是否成功)
反向代理到指定自定义页面
开启服务
我通过本地服务器开启了一个127.0.0.1:8080的web页面
配置host(我使用了SwitchHosts)
127.0.0.1 my.com
配置nginx
配置server的配置,添my.com的https服务
server {
listen 443 ssl;
server_name my.com;
# 设置 SSL 证书和私钥地址
ssl_certificate /Users/mako/mako-SSL.pem;
ssl_certificate_key /Users/mako/mako-SSL-key.pem;
# SSL 会话配置
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# SSL 协议、加密配置
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
proxy_pass 'http://127.0.0.1:8080';
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
重启nginx
sudo nginx -s reload
访问web
访问https://my.com验证是否成功,浏览器提示应该显示“连接是安全的”,对于chrome来说,会在链接输入栏左侧有个小锁。