nginx下https服务器安装与配置教程
1、https简介
2、ssl证书 但是内网实现一个服务器端和客户端传输内容的加密,可以自己给自己颁发证书,只需要忽略掉浏览器不信任的警报即可! 由CA签署的证书为您的服务器提供两个重要的功能: 1、浏览器会自动识别证书并且在不提示用户的情况下允许创建一个安全连接。
2、当一个CA生成一个签署过的证书,它为提供网页给浏览器的组织提供身份担保。
3、制作CA证书
openssl genrsa -des3 -out ca.key 2048
ca.crt CA根证书(公钥):
openssl req -new -x509 -days 365 -key ca.k
ey -out ca.crt
openssl genrsa -des3 -out www.example.com.pem 1024
制作解密后的www.example.com证书私钥:
openssl rsa -in www.example.com.pem -out www.example.com.key
生成签名请求:
openssl req -new -key www.example.com.pem -out www.example.com.csr
可以在Common Name中填入网站域名,即可生产该网站的证书。
openssl ca -policy policy_anything -days 365 -cert ca.crt -keyfile ca.key -in www.example.com.csr -out www.example.com.crt
可能执行签名时,会出现“I am unable to access the ./demoCA/newcerts directory”问题:
解决方法:
mkdir -p demoCA/newcerts
touch demoCA/index.txt touch demoCA/serial echo "01" > demoCA/serial 然后,再执行签名命令即可。
基于Nginx搭建HTTPS虚拟主机
复制代码代码示例:
upstream sslfpm {
server 127.0.0.1:9000 weight=10 max_fails=3 fail_timeout=20s; } server { listen 192.168.1.*:443; server_name 192.168.1.*; #为一个server开启ssl支持 ssl on; #为虚拟主机指定pem格式的证书文件 ssl_certificate /home/wangzhengyi/ssl/wangzhengyi.crt; #为虚拟主机指定私钥文件 ssl_certificate_key /home/wangzhengyi/ssl/wangzhengyi_nopass.key; #客户端能够重复使用存储在缓存中的会话参数时间 ssl_session_timeout 5m; #指定使用的ssl协议 ssl_protocols SSLv3 TLSv1; #指定许可的密码描述 ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #SSLv3和TLSv1协议的服务器密码需求优先级高于客户端密码 ssl_prefer_server_ciphers on; location / { root /home/wangzhengyi/ssl/; autoindex on; autoindex_exact_size off; autoindex_localtime on; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; error_page 404 /404.html; location = /50x.html { root /usr/share/nginx/www; } location = /404.html { root /usr/share/nginx/www; } # proxy the PHP scripts to fpm location ~ \.php$ { access_log /var/log/nginx/ssl/ssl.access.log main; error_log /var/log/nginx/ssl/ssl.error.log; root /home/wangzhengyi/ssl/; fastcgi_param HTTPS on; include /etc/nginx/fastcgi_params; fastcgi_pass sslfpm; } }
2、https服务器优化
1M缓存可以存放约4000个会话。
ssl_session_cache指令
使用环境:main,server
ssl优化:
#优化ssl服务
(责任编辑:IT)ssl_session_cache shared:wzy:10m; #客户端能够重复使用存储在缓存中的会话参数时间 ssl_session_timeout 10m; |