nginx配置ssl双向验证的方法
1、安装nginx略
2、使用openssl实现证书中心
由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书、服务端证书、客户端证书中都相同
CountryName
StateorProvinceName
LocalityName
OrganizationName
OrganizationalUnitName
编辑证书中心配置文件
vim/etc/pki/tls/openssl.cnf
[CA_default]
dir =/etc/pki/CA
certs =$dir/certs #Wheretheissuedcertsarekept
crl_dir =$dir/crl #Wheretheissuedcrlarekept
database =$dir/index.txt #databaseindexfile.
#unique_subject=no #Setto"no"toallowcreationof
#severalctificateswithsamesubject.
new_certs_dir =$dir/newcerts #defaultplacefornewcerts.
certificate =$dir/cacert.pem #TheCAcertificate
serial =$dir/serial #Thecurrentserialnumber
crlnumber =$dir/crlnumber #thecurrentcrlnumber #mustbecommentedouttoleaveaV1CRL
crl =$dir/crl.pem #ThecurrentCRL
private_key =$dir/private/cakey.pem#Theprivatekey
RANDFILE =$dir/private/.rand #privaterandomnumberfile
[req_distinguished_name]
countryName =CountryName(2lettercode)
countryName_default =CN
countryName_min =2
countryName_max =2
stateOrProvinceName =StateorProvinceName(fullname)
stateOrProvinceName_default =FJ
localityName =LocalityName(eg,city)
localityName_default =FZ
0.organizationName =OrganizationName(eg,company)
0.organizationName_default =zdz
organizationalUnitName =OrganizationalUnitName(eg,section)
organizationalUnitName_default =zdz
创建证书私钥
cd/etc/pki/CA/private
(umask077;opensslgenrsa-out cakey.pem2048)
生成自签证书
cd/etc/pki/CA/
opensslreq-new-x509-keyprivate/cakey.pem-outcacert.pem-days=3655
3、创建服务器证书
mkdir/usr/local/nginx/ssl
cd/usr/local/nginx/ssl
(umask077;opensslgenrsa-outnginx.key1024)
opensslreq-new-keynginx.key-outnginx.csr
opensslca-innginx.csr-outnginx.crt-days=3650
4、创建客户端浏览器证书
(umask077;opensslgenrsa-outclient.key1024)
opensslreq-new-keyclient.key-outclient.csr
opensslca-inclient.csr-outclient.crt-days=3650
将文本格式的证书转换成可以导入浏览器的证书
opensslpkcs12-export-clcerts-inclient.crt-inkeyclient.key-outclient.p12
5、配置nginx服务器验证
vim/usr/local/nginx/conf/nginx.conf
sslon;
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 SSLv2SSLv3TLSv1;
点击“我已充分了解可能的风险”
点击“添加例外”
点击“确认安全例外”
6、配置双向验证
nginx配置开启ssl_verify_client on;
在客户端浏览器没有安装证书的情况下访问
在客户端浏览器导入证书
将在Linux服务器上生成的客户端证书下载到windows上
打开火狐浏览器的高级选项卡
在证书管理器中的您的证书中点击导入
选择证书并导入
再次刷新网页,弹出“使用确认”点击确定,就实现了双向验证
相关文章
- Tomcat配置ssl协议及遇到的问题https页面无法访问
- Docker容器访问SQL Server 抛异常:SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed
- linux apache2配置_虚拟主机开启ssl
- Haproxy关于SSL的各种场景配置
- CentOS7+Apache使用SSL配置HTTPS 服务
- debian9.9 apache2.4 站点添加ssl证书配置https
- linux+CentOS+宝塔完成环境搭建和配置域名和SSL证书配置
- 宝塔申请SSL配置教程
- Redis 配置及持久化(一)
- Ubuntu20.04教你如何安装配置GitLab的方法步骤
- SpringCloud系列七:Hystrix 熔断机制(Hystrix基本配置、服务降级、HystrixDashboard服务监控、Turbine聚合监控)详解编程语言
- MySQL Variables have_ssl 数据库 参数变量解释及正确配置使用
- MySQL Variables ssl_capath 数据库 参数变量解释及正确配置使用
- MySQL Variables tmpdir 数据库 参数变量解释及正确配置使用
- ssl证书Linux主机绑定SSL证书的方法(linuxhost绑定)
- 如何在Linux系统中安装SSL证书(linux安装ssl证书)
- 如何配置Linux中的Samba传输服务(linuxsamba配置)
- JBoss服务器如何配置MySQL数据库(jboss配置mysql)
- 如何查看和修改Oracle数据库的参数配置?(查看oracle参数)
- Linux配置SSL证书:快速通过安全连接保护系统(linux配置ssl证书)
- 深入了解MySQL中SSL连接的必要性和配置方法(mysql中 ssl连接)
- MySQL连接不支持SSL的问题出现解决方法请查看(mysql 不支持ssl)
- 基于Redis集群的高可用配置方案(redis集群配置方案)
- Redis启用SSL安全传输的步骤(redis 配置ssl)