Java nginx 双向ssl_nginx配置ssl双向验证 nginx https ssl证书配置
参考《nginx安装》:http://www.ttlsa.com/nginx/nginx-install-on-linux/
如果你想在单IP/服务器上配置多个https,请看《nginx 同一个IP上配置多个HTTPS主机》
2、使用openssl实现证书中心
由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书、服务端证书、客户端证书中都相同
Country Name
State or Province Name
Locality Name
Organization Name
Organizational Unit Name
1
2
3
4
5
Country Name
State orProvince Name
Locality Name
Organization Name
Organizational Unit Name
编辑证书中心配置文件
vim
/etc/pki/tls/openssl.cnf
[ CA_default ]
dir = /etc/pki/CA
certs = $dir/certs # Where the issued certs are
kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation
of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1
CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
[ req_distinguished_name ]
countryName = Country Name(2 letter code)
countryName_default = CN
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = FJ
localityName = Locality Name (eg, city)
localityName_default = FZ
0.organizationName = Organization Name (eg, company)
0.organizationName_default = zdz
organizationalUnitName = Organizational Unit Name (eg,
section)
organizationalUnitName_default = zdz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
vim/etc/pki/tls/openssl.cnf
[CA_default]
dir=/etc/pki/CA
certs=$dir/certs# Where the issued certs are kept
crl_dir=$dir/crl# Where the issued crl are kept
database=$dir/index.txt# database index file.
#unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir=$dir/newcerts# default place for new certs.
certificate=$dir/cacert.pem# The CA certificate
serial=$dir/serial# The current serial number
crlnumber=$dir/crlnumber# the current crl number # must be commented out to leave a V1 CRL
crl=$dir/crl.pem# The current CRL
private_key=$dir/private/cakey.pem# The private key
RANDFILE=$dir/private/.rand# private random number file
[req_distinguished_name]
countryName=Country Name(2letter code)
countryName_default=CN
countryName_min=2
countryName_max=2
stateOrProvinceName=State orProvince Name(full name)
stateOrProvinceName_default=FJ
localityName=Locality Name(eg,city)
localityName_default=FZ
0.organizationName=Organization Name(eg,company)
0.organizationName_default=zdz
organizationalUnitName=Organizational Unit Name(eg,section)
organizationalUnitName_default=zdz
创建证书私钥
cd /etc/pki/CA/private
(umask 077;openssl genrsa -out cakey.pem 2048)
1
2
cd/etc/pki/CA/private
(umask077;openssl genrsa-out cakey.pem2048)
生成自签证书
cd /etc/pki/CA/
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days=3655
1
2
cd/etc/pki/CA/
openssl req-new-x509-key private/cakey.pem-out cacert.pem-days=3655
3、创建服务器证书
mkdir /usr/local/nginx/ssl
cd /usr/local/nginx/ssl
(umask 077;openssl genrsa -out nginx.key 1024)
openssl req -new -key nginx.key -out nginx.csr
openssl ca -in nginx.csr -out nginx.crt -days=3650
1
2
3
4
5
mkdir/usr/local/nginx/ssl
cd/usr/local/nginx/ssl
(umask077;openssl genrsa-out nginx.key1024)
openssl req-new-key nginx.key-out nginx.csr
openssl ca-innginx.csr-out nginx.crt-days=3650
4、创建客户端浏览器证书
(umask 077;openssl genrsa -out client.key 1024)
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.crt -days=3650
将文本格式的证书转换成可以导入浏览器的证书
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
1
2
3
4
5
(umask077;openssl genrsa-out client.key1024)
openssl req-new-key client.key-out client.csr
openssl ca-inclient.csr-out client.crt-days=3650
将文本格式的证书转换成可以导入浏览器的证书
openssl pkcs12-export-clcerts-inclient.crt-inkey client.key-out client.p12
5、配置nginx服务器验证
vim /usr/local/nginx/conf/nginx.conf
ssl on;
ssl_certificate /usr/local/nginx/ssl/nginx.crt;
ssl_certificate_key /usr/local/nginx/ssl/nginx.key;
ssl_client_certificate /usr/local/nginx/ssl/cacert.pem;
ssl_session_timeout 5m;
#ssl_verify_client on; 服务器验证客户端,暂时不开启,让没有证书的客户端可以访问,先完成单向验证
ssl_protocols SSLv2 SSLv3 TLSv1;
1
2
3
4
5
6
7
8
vim/usr/local/nginx/conf/nginx.conf
ssl on;
ssl_certificate/usr/local/nginx/ssl/nginx.crt;
ssl_certificate_key/usr/local/nginx/ssl/nginx.key;
ssl_client_certificate/usr/local/nginx/ssl/cacert.pem;
ssl_session_timeout5m;
#ssl_verify_client on; 服务器验证客户端,暂时不开启,让没有证书的客户端可以访问,先完成单向验证
ssl_protocolsSSLv2 SSLv3 TLSv1;
点击“我已充分了解可能的风险”
点击“添加例外”
点击“确认安全例外”
6、配置双向验证
nginx配置开启ssl_verify_client on;
在客户端浏览器没有安装证书的情况下访问
在客户端浏览器导入证书
将在Linux服务器上生成的客户端证书下载到windows上
打开火狐浏览器的高级选项卡
在证书管理器中的您的证书中点击导入
选择证书并导入
再次刷新网页,弹出“使用确认”点击确定,就实现了双向验证
本文转自:http://www.zhengdazhi.com/?p=865
Java nginx 双向ssl_nginx配置ssl双向验证 nginx https ssl证书配置相关推荐
- Java 和 HTTP 的那些事(四) HTTPS 和 证书
Java 和 HTTP 的那些事(四) HTTPS 和 证书 说起 HTTP 的那些事,则不得不提 HTTPS ,而说起 HTTPS ,则不得不提数字证书.这篇博客将从 Java 的角度,学习 HTT ...
- https免费证书配置
https免费证书配置 背景 1.http 和 https 是什么? 简单来说,http 是一个传输网页内容的协议,比如你看到的 http 开头的网站 http://www.163.com,其网页上的 ...
- nginx配置多个一级域名https访问的配置
首先已有两个域名 www.test1.com ,www.test2.com nginx的安装略过 1.在nginx安装目录下创建cert目录 在Nginx的安装目录下创建cert目录 2.在cert目 ...
- Java 和 HTTP 的那些事(四) HTTPS 和 证书相关
说起 HTTP 的那些事,则不得不提 HTTPS ,而说起 HTTPS ,则不得不提数字证书.这篇博客将从 Java 的角度,学习 HTTPS 和数字证书技术,并分享爬虫开发的过程中针对爬取 HTTP ...
- LINUX服务器最简洁的HTTPS免费证书配置方法
注意:该方法已在多台服务器配置了免费的https证书,无论是更新还是第一次配置都运行成功:由于是免费版,每个证书都只有三个月的有效期,也无法保证安全和稳定性,所以只建议做测试用,客户的项目需要时,请让 ...
- openssl学习笔记--CA及https网站证书配置
一.需求分析: 证书服务器自建CA,网页服务器通过CA创建网页主机证书,以实现网站内容安全传输. 二.拓扑图: 三.相关配置: 1. 证书服务器(ns1)创建自签证书: [root@ns1 ~]# c ...
- c# https请求忽略证书验证_c# https绕过证书
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 图文详解:阿里云域名配置免费https/SSL证书
文章目录 https简介 证书购买 配置证书 注意事项 https简介 首先简单说一下https的原理.即服务端与客户端(浏览器)如何保证数据是加密传输的呢?我记得有个经典的例子: 服务端发给客户端一 ...
- 阿里云 https ssl 网站配置 备案记录
近期搞了阿里云ecs服务器.域名.ssl.nginx配置.网站备案,在此记录一下遇到的坑. 1.域名解析配置 (1)域名绑定服务器 很简单,直接新手引导,添加服务器公网ip即可.完成后会出现 www ...
- 使用 acme.sh 配置 https 免费证书
官方文档 安装acme.sh curl https://get.acme.sh | sh 如果此方式安装失败,可以使用 git 安装 git clone https://github.com/acme ...
最新文章
- vs生成解决方案出错
- PHP中memcached的使用
- linux 脚本 变量为空,Shell脚本中判断输入变量或者参数是否为空的方法
- Windows server用好windows server backup,发挥个人电脑该有的系统还原功能
- Oracle APEX 系列文章7:Oracle APEX 18.1 新特性
- 简单QT应用到通过手写布局实现QT应用
- spring autoproxy by annotation
- nginx日志中文变成类型\xE9\xA6\x96\xE9\xA1\xB5-\xE6\x8E\xA8\xE8\x8D\x90的东西
- 基于JAVA+SpringMVC+Mybatis+MYSQL的校园二手市场系统
- 巡查准确率怎么算_【达睿原创】需求预测准确率,你怎么看 ?
- frameset嵌套多个html,在一个html的js中调用另一个html的变量和函数(导航栏更新个人图标)
- 公司欠薪,一定要书面督促或仲裁后,再离职
- 使用Visual Studio 2010打造C语言编译器
- ERWIN中表结构导出到doc文件中
- 写给海布里之王—亨利
- 【无标题】安装 Debian 11 Bullseye – 一步一步的截图
- python如何计算字典平均值_算出字典中数值的平均值
- 基于python机票预定系统_机票预订系统课程设计.doc
- 史上最全的NB-IoT知识,每个通信人都应该了解的
- 关于IE下复选框的样式问题