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/ ...
随机推荐
- Java控制流程(复习)
流程控制语句 流程控制语句包括:顺序结构,分支结构,循环结构 分支结构 if语句: 第一种: if(关系表达式){ 语句体 } else{ 语句体2 } 第二种: if (){ } else if ( ...
- 胖AP组建小型企业WLAN
胖ap组网 无线路由器wrt配置 使用自动连接时,会从无线路由器第一个端口开始连接,但那是接入外网的端口,因此和二层交换机相连的线要手动更改一下,否则和交换机相连的设备无法dhcp获取ip 打开无线路 ...
- ElementUI Select下拉框定位问题!
今天遇到了下拉不跟随文本框滚动的问题 参考官方手册添加参数: popper-append-to-body="false" 无效[内心很无语]继续检查向上推,查看html样式,发现了 ...
- 公司官网百度搜素优化(www.curetech.cc)
1. 解读" 百度搜素引擎网页质量白皮书 " . 链接:https://pan.baidu.com/s/1fD7Cm93qsK01M0K1M1cIKw 提取码:9krx 2. ...
- 第十章用Python获取sqlite、MySQL、Excel、csv、json中的数据
目录 获取sqlite3中的数据 sqlite3库获取sqlite数据 pandas库获取sqlite数据 获取MySQL中的数据 pymsql库获取MySQL数据 pandas库获取mysql数据 ...
- 冒泡排序快速排序C语言
//冒泡排序 void BubbleSort(ElemType A[], int n) { int i, j, temp; int flag=1; for (i = 1; i <= n - 1& ...
- Java多线程编程技术方案原理
一 ,多线程相关的一些概念 1,线程和进程: 线程指的是进程中一个单一顺序的控制流, 进程中可以并发多个线程,每条线程并行执行不同的任务,被认为是一个计算资源的集合.进程不能被任务是一个应用,因为有些 ...
- 通过一个简单的实例来展示 Java 编程,创建文件 HelloWorld.java
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello Wo ...
- 由于CVE-2020-10770漏洞,k8s集群升级keycloak 8.0.0-->15.0.0(由于15.0.0最近又出安全漏洞,升级为16.0.0)
背景 前段时间项目组用到的8.0.0版本的keycloak被安全部门同事扫出来一个中危漏洞: A flaw was found in Keycloak, where it is possible to ...
- 哲讯科技携手江苏大摩半导体借助SAP ERP打造数字化转型升级
项目启动会2022年10月28日,无锡哲讯科技携手江苏大摩半导体科技有限公司SAP ERP系统实施项目启动大会于江苏大摩的上海总部会议室胜利召开.双方项目组核心成员,共同见证了本次SAP ERP实施项 ...