ngx_http_ssl_module模块
ngx_http_ssl_module模块:
ngx_http_ssl_module模块: ssl on | off; 为指定虚拟机启用HTTPS protocol,已淘汰,建议用listen指令代替 ssl_certificate file; 当前虚拟主机使用PEM格式的证书文件。后缀为pem或crt ssl_certificate_key file;当前虚拟主机上与其证书匹配的私钥文件 ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2]; 支持ssl协议版本,默认为后三个 ssl_session_cache off | none | [builtin[:size]] [shared:name:size]; none: 通知客户端支持ssl session cache,但实际不支持 builtin[:size]: 使用OpenSSL内建缓存,为每worker进程私有 [shared:name:size]: 在各worker之间使用一个共享的缓存,需要定义给个缓存名称和缓存空间大小,一兆可以存储4000个会话信息,多个虚拟主机可以使用相同的缓存名称。 ssl_session_timeout time; 客户端连接可以复用ssl session cache中缓存的有效时长,默认5m
示例: 80和443一起使用的三种方法:1.两个listen写在一个server内。2.分开两个server但root相同。3.rewrite跳转。
server {
listen 80;
listen 443 ssl;
server_name ssl.zjol.com.cn;
ssl_certificate /usr/local/nginx/ssl/zjol2022.pem;
ssl_certificate_key /usr/local/nginx/ssl/zjol2022.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
charset GB2312;
location /ssl {
root /data/nginx/html;
index index.html;
}}
创建自签名证书方法一,模拟向CA证书。
#⾃签名CA证书,
[root@s2 ~]# cd /apps/nginx/
[root@s2 nginx]# mkdir certs
[root@s2 nginx]# cd certs/
[root@s2 nginx]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt #⾃签名CA证书
Generating a 4096 bit RSA private key .................++ .....
Country Name (2 letter code) [XX]:CN #国家代码,https://country-code.cl/
State or Province Name (full name) []:BeiJing #省份
Locality Name (eg, city) [Default City]:Beijing #城市名称
Organization Name (eg, company) [Default Company Ltd]:magedu.Ltd #公司名称
Organizational Unit Name (eg, section) []:magedu #部⻔
Common Name (eg, your name or your server's hostname) []:magedu.ca #通⽤名称
Email Address []:2973707860@qq.com #邮箱
[root@s2 certs]# ll ca.crt -rw-r--r-- 1 root root 2118 Feb 22 12:10 ca.crt
#⾃制key和csr⽂件
[root@s2 certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout www.magedu.net.key -out www.magedu.net.csr
Generating a 4096 bit RSA private key ........................................................................++
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BeiJing
Locality Name (eg, city) [Default City]:BeiJing
Organization Name (eg, company) [Default Company Ltd]:magedu.net
Organizational Unit Name (eg, section) []:magedu.net
Common Name (eg, your name or your server's hostname) []:www.magedu.net
Email Address []:2973707860@qq.com
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []: #直接回车
An optional company name []:
[root@s2 certs]# ll
-rw-r--r-- 1 root root 2118 Feb 22 12:10 ca.crt
-rw-r--r-- 1 root root 3272 Feb 22 12:10 ca.key
-rw-r--r-- 1 root root 1760 Feb 22 12:18 www.magedu.net.csr
-rw-r--r-- 1 root root 3272 Feb 22 12:18 www.magedu.net.key
#向CA提交"信息"并签发证书
[root@s2 certs]# openssl x509 -req -days 3650 -in www.magedu.net.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www.magedu.net.crt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=magedu.net/OU=magedu.net/CN=www.magedu.net/emailAd dress=2973707860@qq.com
Getting CA Private Key
#验证证书内容
[root@s2 certs]# openssl x509 -in www.magedu.net.crt -noout -text
创建自签名证书方法二
1.进入证书目录 cd /etc/pki/tls/certs/ 2.创建证书文件,并生成私钥(这里要输入三次密钥和证书相关信息),参考方法一 make magedu.net.crt 3.使用openssl将私钥的密码删除,并生成新私钥。 openssl rsa -in magedu.net.key -out magedu.nets.key 4.备份和覆盖原密钥。 mv magedu.net.key magedu.net.key.bak mv magedu.nets.key magedu.net.key chmod 600 magedu.*
开启ssl_session_cache 的作用 https://www.sohu.com/a/469734306_121124376