本地调试安装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一键包,添加站点时可以指定自有证书,可参考以下教程:

LNMP一键包安装自有SSL证书教程

安装CA根证书

如果客户端不安装CA根证书,访问站点时会有安全提示。mkcert生成根证书时会自动将CA证书安装到本机系统,Ubuntu的路径如下:

/usr/local/share/ca-certificates/

Windows系统安装方法:

  1. 打开运行对话框:按 Windows key(窗户图标) + R;
  2. 输入mmc,然后回车;
  3. 在文件菜单点击添加或删除管理单元,选中证书项,点击添加,选择计算机账户;
  4. 在受信任的根证书颁发机构上右键,选择所有任务,然后导入。

安卓手机安装方法:

  1. 将rootCA.pem拷贝到手机Downloads目录;
  2. 在设置中搜索凭据;
  3. 在加密和凭据中,选择从存储设备安装。
Typora