本地调试安装SSL证书启用HTTPS访问
在做一些应用开发时,需要强制启用HTTPS,特别是一些API调用。本地调试使用内网IP,无法绑定域名访问,但也可以安装SSL证书启用HTTPS访问。
安装OpenSSL和libSSL:
sudo apt-get install openssl libssl-dev
安装mkcert:
sudo apt install mkcert
生成CA根证书并自动安装到系统:
mkcert -install
查看根证书保存路径:
mkcert -CAROOT
输出类似如下路径:
~/.local/share/mkcert
将rootCA.pem拷贝出来以便在其他设备上安装。
生成站点证书,多个地址用空格分隔,支持通配符子域名:
mkcert 192.168.1.80
将证书拷贝到服务器:
scp -i ~/.ssh/ssh.key 192.168.1.80.pem root@192.168.1.80:/etc/ssl/certs
scp -i ~/.ssh/ssh.key 192.168.1.80-key.pem root@192.168.1.80:/etc/ssl/private
对于Nginx,在配置文件中找到server块,需要启用HTTPS访问的站点做如下配置:
listen 443 ssl;
ssl_certificate /etc/ssl/certs/192.168.1.80.pem;
ssl_certificate_key /etc/ssl/private/192.168.1.80-key.pem;
对于LNMP一键包,添加站点时可以指定自有证书,可参考以下教程:
安装CA根证书
如果客户端不安装CA根证书,访问站点时会有安全提示。mkcert生成根证书时会自动将CA证书安装到本机系统,Ubuntu的路径如下:
/usr/local/share/ca-certificates/
Windows系统安装方法:
- 打开运行对话框:按 Windows key(窗户图标) + R;
- 输入mmc,然后回车;
- 在文件菜单点击添加或删除管理单元,选中证书项,点击添加,选择计算机账户;
- 在受信任的根证书颁发机构上右键,选择所有任务,然后导入。
安卓手机安装方法:
- 将rootCA.pem拷贝到手机Downloads目录;
- 在设置中搜索凭据;
- 在加密和凭据中,选择从存储设备安装。