Nginx 配置SSL证书
OpenSSL 生成私有证书
生成私钥
bash
openssl genrsa -out server.key 2048创建证书签名请求 (CSR)
bash
openssl req -new -key server.key -out server.csr系统会提示你输入一些信息:
- 国家代码(如 CN)
- 州或省份
- 城市
- 组织名称
- 组织单位(可选)
- 通用名称(域名或服务器名)
- 电子邮件地址(可选)
生成自签名证书
bash
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt.key:是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
.csr:是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
.crt:是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
配置server块
nginx
server {
listen 443 ssl;
server_name localhost;
ssl_certificate server.crt;
ssl_certificate_key server.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
}ssl_certificate server.crt:指定证书文件
ssl_certificate_key server.key:指定私钥文件
ssl_session_timeout 10m: 缓存的时间由ssl_session_timeout决定
ssl_session_cache:就是缓存ssl会话状态的缓存,它有4种模式可选,分别是:
off:严格的禁止使用会话缓存
none:宽松的禁止使用会话缓存,即虽然nginx不说不允许使用会话缓存,但实际不会将会话缓存下来
builtin:openssl的内置缓存,只有一个工作进程可以使用该缓存,官方指出,内置缓存,会导致内存碎片
shared:共享缓存,所有worker进程共享将私钥和证书,放到nginx的/usr/local/nginx/conf目录中
