【运维笔录】局域网实现HTTPS访问,只需Nginx + mkcert
1)下载安装mkcert
wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64
为二进制文件添加可执行权限,并移动到 $PATH
中:
chmod +x mkcert
mv mkcert /usr/local/bin/
检查 mkcert 的版本:
mkcert -version
如果版本显示正常,说明安装无误。接下来,我们看看 mkcert 是如何创建证书的。
2)为nginx中的域名配置证书
mkcert -cert-file /etc/nginx/ssl/dev.crt -key-file /etc/nginx/ssl/dev.key dev.sleepyocean.cn
如果ssl目录不存在,创建ssl目录即可。
3)修改域名的https的nginx配置
server {
listen 443 ssl;
server_name dev.sleepyocean.cn;
ssl on;
ssl_certificate /etc/nginx/ssl/dev.crt;
ssl_certificate_key /etc/nginx/ssl/dev.key;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://web.sleepyocean.cn;
}
}
刷新nginx配置
nginx -s reload
4)在需要访问该域名的机器上安装证书
# 查看证书路径
> mkcert -CAROOT
/root/.local/share/mkcert
# 查看证书
> ls /root/.local/share/mkcert
rootCA-key.pem rootCA.pem
下载rootCA.pem
文件到PC上,重命名为rootCA.crt
,然后安装证书。