
自签证书实现本地Https
为什么要自签证书
- 本地环境进行开发时,有的API接口要求必须要
https
才能对接- HTML网站转换
渐进式网页应用(PWA)
时,chrome要求必须要https
- 可以给本地
hosts
中的"虚拟域名"安装ssl证书,实现https- 更加贴近线上环境、更好debug、屏蔽一些浏览器默认禁止访问http网站的问题
自签流程
安装 OpenSSL: 如果你的系统没有安装 OpenSSL,请先安装它。在 macOS 上,可以使用 Homebrew:brew install openssl
;在 Linux 上,可以使用你的发行版的包管理器(例如,在 Debian/Ubuntu 上使用 apt-get install openssl
)。不建议使用windows****创建证书颁发机构 (CA): 这将生成一个根证书和私钥,你的服务器证书将由它签名。
# 生成私钥
# 这将创建一个 2048 位的 RSA 私钥,并提示你设置密码。**务必记住这个密码!**
openssl genrsa -des3 -out myCA.key 2048
# 生成自签名证书
# 这将使用私钥生成一个自签名证书,有效期为 365 天。
# 你将被提示输入一些信息,例如国家、组织等。这些信息并不关键,但建议填写一些可识别的信息。
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 365 -out myCA.pem
生成服务器证书: 这将为你的域名生成一个证书,由之前创建的 CA 签名。
#生成私钥 这将创建一个 2048 位的 RSA 私钥。
openssl genrsa -out server.key 2048
# 生成证书签名请求 (CSR)
# 这将生成一个 CSR 文件,包含你的域名信息。
# 你将被提示输入一些信息,务必将“Common Name (CN)”设置为你的域名,例如 zekibu.im
openssl req -new -key server.key -out server.csr
# 签名 CSR
# 这将使用 CA 证书和私钥来签名 CSR,生成最终的服务器证书。
openssl x509 -req -in server.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out server.crt -days 365 -sha256
安装证书
将
server.crt
文件配置到你的 Web 服务器 (例如 Nginx 或 Apache) 中。 你需要将server.key
文件与server.crt
一起配置。 具体配置方法取决于你的 Web 服务器。
信任证书
为了避免浏览器警告,你需要将
myCA.pem
添加到你的操作系统信任的根证书存储中。 这通常需要通过图形界面进行操作,具体方法取决于你的操作系统。
重要提醒
记住替换
zekibu.im
为你的实际域名。 在执行这些命令之前,建议备份你的现有证书和密钥。 如果对 OpenSSL 命令不熟悉,请仔细阅读 OpenSSL 的文档。
自签名证书仅用于开发和测试环境,不适用于生产环境。 生产环境应使用受信任的证书颁发机构 (CA) 签发的证书。
本文是原创文章,完整转载请注明来自 周明博客