1 安装openssl
# macos 安装
brew install openssl
# centos 安装
yum install openssl openssl-devel
2 创建自签名的SSL证书和私钥
生成私钥(key文件)
# -genra 生成RSA私钥
# -des3 des3算法
# -out server.key 生成的私钥文件名
# -2048 私钥长度
openssl genrsa -des3 -out server.pass.key 2048
# 输入一个4位以上的密码。
2.1 去除私钥中的密码
openssl rsa -in server.pass.key -out server.key
2.2 生成CSR(证书签名请求)
# -req 生成证书签名请求
# -new 新生成
# -key 私钥文件
# -out 生成的CSR文件
# -subj 生成CSR证书的参数
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Shanghai/L=Shanghai/O=cetc/OU=cetc/CN=snake.com"
subj参数说明如下:
| 字段 | 字段含义 | 示例 |
|---|---|---|
| /C= | Country 国家 | CN |
| /ST= | State or Province 省 | Shanghai |
| /L= | Location or City 城市 | Shanghai |
| /O= | Organization 组织或企业 | cetc |
| /OU= | Organization Unit 部门 | wlst |
| /CN= | Common Name 域名或IP | wlst.com |
2.3 生成自签名SSL证书
# -days 证书有效期
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
X.509证书包含三个文件:key,csr,crt。
- key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
- csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
- crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有的公钥,以及签署者的签名等信息 备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。
3 nginx 配置 ssl 证书
3.1 复制证书文件至 nginx 配置文件根目录
把上面步骤生成的 server.crt 和 server.key 文件复制至 nginx 配置文件根目录下
3.2 配置 ssl 证书
在 nginx.conf 配置文件进行配置
server {
listen 443 ssl;
server_name snake.com;
ssl_certificate server.crt;
ssl_certificate_key server.key;
ssl_protocols TLSv1.2;
location / {
proxy_pass http://127.0.0.1:21001/;
}
}
3.3 本地hosts配置代理域名解析(本地测试)
3.4 重启 nginx
nginx -t
nginx -s reload