Nginx 配置https的单向或双向认证
一、自制https认证证书
1. 制作CA证书
A. 生成CA私钥:openssl genrsa -des3 -out ca.key 2048,注意要输入两次密码,若去除密码使用openssl rsa -in ca.key -out ca.key;
B. 生成请求文件:openssl req -new -key ca.key -out ca.csr -subj "/C=CN/ST=HuBei/L=WuHan/O=dev/OU=dev/CN=rhxy",注意有可能报错,原因是默认 -config /usr/ssl/openssl.cnf,通过openssl version -a查看配置;
C. 生成CA证书:openssl x509 -req -days 730 -in ca.csr -signkey ca.key -out ca.crt;
2. 制作Server端证书
A. 生成服务端私钥:openssl genrsa -des3 -out server.key 2048;
B. 生成服务端公钥:openssl rsa -in server.key -pubout -out server.pem;
C. 生成请求文件:openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=HuBei/L=WuHan/O=dev/OU=dev/CN=rhxy"
D. 生成服务端带有CA签名的证书:openssl x509 -req -days 730 -CA ca.crt -CAKey ca.key -CAcreateserial -in server.csr -out server.crt;
3. 制作Client端证书
A. 生成客户端私钥:openssl genrsa -des3 -out client.key 2048;
B. 生成客户端公钥:openssl rsa -in client.key -pubout -out client.pem;
C. 生成请求文件:openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=HuBei/L=WuHan/O=dev/OU=dev/CN=rhxy"
D. 生成客户端带有CA签名的证书:openssl x509 -req -days 730 -CA ca.crt -CAKey ca.key -CAcreateserial -in client.csr -out client.crt;
注意:windows上安装的证书需要pfx/p12格式:openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx
4. 自签名证书和私有CA签名的证书区别
A. 自签名证书无法吊销,而私有CA签名的证书可以吊销;
二、配置单向认证
1. 放置服务端证书文件:涉及server.key、server.crt文件放入conf.d/cert目录下;
2. 更改nginx配置并重启:./nginx -s reload;
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name rhxy.com;
ssl_certificate conf.d/cert/server.crt;
ssl_certificate_key conf.d/cert/server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
3. 测试:在谷歌浏览器地址栏中输入url访问,会弹出不安全连接的警告,点击忽略,继续访问,即可访问相应资源;
三、配置双向认证
1. 放置服务端证书文件:涉及server.key、server.crt、ca.crt文件放入conf.d/cert目录下;
2. 更改nginx配置并重启:./nginx -s reload;
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name rhxy.com;
ssl_certificate conf.d/cert/server.crt;
ssl_certificate_key conf.d/cert/server.key;
ssl_client_certificate conf.d/cert/ca.crt;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_verify_client on;
location / {
root html;
index index.html index.htm;
}
}
3. 导入客户端证书
A. 打开浏览器,找到设置->隐私设置和安全性->安全->管理证书,将client.pfx导入浏览器中;

B. 重启浏览器:导入成功后需要关闭浏览器再重启,然后访问会弹出提示,单击对应证书就可以正常访问了;
可参考:SSL/TLS认证详解
Nginx 配置https的单向或双向认证的更多相关文章
- nginx配置ssl加密(单双向认证、部分https)
nginx配置ssl加密(单双向认证.部分https) nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始 ...
- [转帖]nginx配置ssl加密(单/双向认证、部分https)
nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627 nginx下配置ssl本来是很简单的,无论是去认证 ...
- nginx配置ssl加密(单/双向认证、部分https)
nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换( ...
- nginx配置SSL实现服务器/客户端双向认证
http://blog.csdn.net/kunoy/article/details/8239653 本人不才,配置了两天,终于搞出来了,结合网上诸多博文,特此总结一下! 配置环境: Ubuntu 1 ...
- nginx配置https双向验证(ca机构证书+自签证书)
nginx配置https双向验证 服务端验证(ca机构证书) 客户端验证(服务器自签证书) 本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件 这两个文件用于做服务器http ...
- 基于openssl的单向和双向认证
1.前言 最近工作涉及到https,需要修改nginx的openssl模块,引入keyless方案.关于keyless可以参考CloudFlare的官方博客: https://blog.cloudfl ...
- nginx 配置https并自签名证书
2016-10-28 转载请注明出处:http://daodaoliang.com/ 作者: daodaoliang 版本: V1.0.1 邮箱: daodaoliang@yeah.net 参考链接: ...
- Nginx 配置 HTTPS 服务器
Nginx 配置 HTTPS 服务器 Chrome 浏览器地址栏标志着 HTTPS 的绿色小锁头从心理层面上可以给用户专业安全的心理暗示,本文简单总结一下如何在 Nginx 配置 HTTPS 服务器, ...
- Nginx配置Https
1.申请证书: https://console.qcloud.com/ssl?utm_source=yingyongbao&utm_medium=ssl&utm_campaign=qc ...
- 【转】Linux下nginx配置https协议访问的方法
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
随机推荐
- linux忘记密码-进入单用户模式修改密码
1.重启系统 重启可以使用命令 reboot.init 6.shutdown -r now 或点击VMware-虚拟机-电源-重新启动客户机 2.进入GRUB界面 重启后,在启动界面按上下方向键选择第 ...
- postman-增加全局环境变量
var jsonData = pm.response.json(); var accessTokenForMip = jsonData.data.access_token; //tests[acces ...
- k8s部署-kubeadm
环境配置 内核配置 基本组件安装 高可用组件安装 kubeadm集群初始化
- [Vue warn]: Do not use built-in or reserved HTML elements as component id: text 错误的解决办法
引入的text 没用,要么注释掉,要么引用
- 第五章:用Python分析商品退单数据并找出异常商品
文章目录 项目背景 获取数据 数据计算 统计次数 异常商品 源码地址 本文可以学习到以下内容: 使用 pandas 中的 read_sql 读取 sqlite 中的数据 获取指定的日期的周一和周日 使 ...
- Markdowm的下载方法
1打开百度搜索,输入TYPORA打开下载页面,根据自己的系统(我的是WINDOWS64位)点"DOWN"进行下载安装. 2安装好后回到桌面新建一个文件夹(Markdown学习),然 ...
- Java基础学习:11、断点调试
1.可以用来查看错误以及查看代码的运行过程. 2.如何使用:
- 【解决】Mac无法通过smb连接到windows的共享文件夹
通过Mac访问windows的共享文件夹也有很多博文都写了,这里不再提. 先按照网上教程,在Windows下允许远程,然后设置文件夹共享出来,再在Mac上通过smb登录,输入用户名和密码窗口总是抖动, ...
- Hadoop完全分布式开发配置流程
完全分布式开发 整体流程 1.准备3台纯净虚拟机 2.修改每台ip,主机名,主机映射,关闭防火墙 3.安装jdk和hadoop,配置环境变量 4.集群分发脚本编写 5.集群配置 6.ssh免密登录 7 ...
- Hyperf微服务
https://hyperf.wiki 状态码含义 https://segmentfault.com/a/1190000002523655