配置nginx 单向ssl认证 /usr/local/nginx/sbin/nginx -V 做之前要先确认nginx有没有ssl_module这个模块 没有的需要重新初始化进行编译 然后killall原来的nginx 重启nginx 这里以我本地配置的虚拟主机为
配置nginx 单向ssl认证
/usr/local/nginx/sbin/nginx -V 做之前要先确认nginx有没有ssl_module这个模块 没有的需要重新初始化进行编译 然后killall原来的nginx 重启nginx这里以我本地配置的虚拟主机为例
虚拟主机配置参考 https://blog.51cto.com/u_15148274/5488171
我这里用的自制CA证书来配置的SSL
自制CA证书参考链接:https://blog.51cto.com/u_15148274/5499646
下方的域名地址要改成ca证书上设置server端的地址 如图所示 (上方链接有设置这个的步骤)
443端口为ssl监听端口。 ss1_certificate指定crt文件所在路径,如果写相对路径,必须把该文件和nginx.conf文件放到一个目录下。 ss1_centificate_key指定key文件所在路径。 ssl protocols指定SSL协议。 ss1_ciphers配置ssl加密算法,多个算法用:分隔,ALL表示全部算法,!表示不启用该算法,+表示将该算法排到最后面去。 551_prefer_server_ciphers 如果不指定默认为off,当为on时,在使用SSLV3和TLS协议时,服务器加密算法将优于客户端加密算法。 vim www.a.com.conf 加入下列内容 server { listen 443 ssl; server_name www.a.com; index index.html; root /data/www/www.a.com; ssl_certificate /etc/pki/ca_test/server/server.crt; ssl_certificate_key /etc/pki/ca_test/server/server.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!eNULL; ssl_prefer_server_ciphers on; } 保存退出之后重载nginx /usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload ###关闭防火墙 最后在Windows上定义hosts Windows hosts路径 C:\Windows\System32\drivers\etc 找到hosts文件打开 加入如图中所示 自己的地址和域名 即可![image.png]完成!~~~~
nginx 配置SSL双向认证
vim www.a.com.conf 加入下列内容 ssl_client_certificate /etc/pki/ca_test/root/ca.crt; ssl_verify_client on; 保存退出之后重载nginx /usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload这时候浏览器访问会时400 如图
需要给浏览器指定一个key文件(公钥文件) 首先需要将client.key 转换成pfx(p12)格式 cd /etc/pki/ca_test/client/ 到client.key文件的路径下 openssl pkcs12 -export -inkey client.key -in client.crt -out client.pfx 转换 #执行转换步骤时会让设置一个密码 后续导入浏览器时会用到 yum -y install lrzsz 下载包 命令行输入 sz sz client.pfx 执行 将client.pfx 传输到Windows桌面 然后将client.pfx拷贝到Windows 找到桌面上导入的文件双击打开 如图 然后打开浏览器 在右上角找到设置 进去搜索关键字 证书(管理证书) 即可查到是否导入成功 如图! 然后重启浏览器 输入地址访问 如图所示!完成!~~~
在命令行验证 首先定义hosts vim /etc/hosts 如图 curl -k --cert /etc/pki/ca_test/client/client.crt --key /etc/pki//ca_test/client/client.key https://www.a.com #指定crt和key文件 即可正常访问验证 结果如图