为 Nginx 创建自签名的 SSL 证书
SSL 及其继任者 TLS 能够加密客户端与服务端的网络连接,保证网络传输信息的安全及完整性,不被他人窃取。有时我们会想要在本机测试加密网络连接,SSL 加密需要有一个 SSL 证书,我们可以为本机生成一个证书来测试。
Table of Contents
自签名的 SSL 证书
使用 OpenSSL 创建一个自签名的单域名和泛著名的 SSL 证书很容易,一行命令主就可以。假设我们为本地的多个项目添加了多个 .local
结尾的域名。
1 | $ openssl req -x509 -nodes -days 1024 -newkey rsa:4096 -keyout local.key -out local.crt |
运行后的结果如下:
1 | $ openssl req -x509 -nodes -days 1024 -newkey rsa:4096 -keyout local.key -out local.crt |
各选项含义比较明显,比较重要的是 Common Name
, 这是与要用 SSL 加密的域名或服务器 IP 相关的。如果是单域名, 就填 local
;要是有多个项目,就填 local,*.local
。知道创建的过程后,就可以一行命令自动生成了。
1 | $ echo -e "CN\nBJ\n\Beijing\nlocal\nlocal\nlocal,\*.local\nme@amito.me"|openssl req -x509 -nodes -days 1024 -newkey rsa:4096 -keyout local.key -out local.crt |
这样我们就在当前目录生成了一个 ssl 证书 local.crt
和对应的密钥 local.key
。
创建 RootCA 及自签名证书
生成 Root SSL 证书
- 生成 Root Key
1 | $ openssl genrsa -des3 -out RootCA.key 4096 |
- 生成 RootCA 证书
1 | $ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem |
信任 Root SSL 证书
生成 网站 SSL 证书
配置 Nginx 使用 SSL
参考
- 如何为Nginx创建自签名SSL证书
- https学习笔记三----OpenSSL生成root CA及签发证书
- How to get HTTPS working on your local development environment in 5 minutes