【图解】nginx配置ssl双向验证及nginx https ssl证书配置教程

1、安装nginx

centos下Nginx安装配置步骤详解
http://www.111cn.net/sys/CentOS/80387.htm

windows下安装nginx 详解教程
http://www.111cn.net/wy/156/38731.htm

2、使用openssl实现证书中心

由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书、服务端证书、客户端证书中都相同
Country Name
 State or Province 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

创建证书私钥
cd /etc/pki/CA/private
 (umask 077;openssl genrsa -out cakey.pem 2048)

生成自签证书
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

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

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;

 


 

点击“我已充分了解可能的风险”

 


 

点击“添加例外”

 


 

点击“确认安全例外”

 


 

6、配置双向验证

nginx配置开启ssl_verify_client on;

在客户端浏览器没有安装证书的情况下访问

 


 

在客户端浏览器导入证书

 


 

将在Linux服务器上生成的客户端证书下载到windows上

 


 

打开火狐浏览器的高级选项卡

 


 

在证书管理器中的您的证书中点击导入

 


 

选择证书并导入

 


 

再次刷新网页,弹出“使用确认”点击确定,就实现了双向验证

时间: 2024-10-31 03:54:17

【图解】nginx配置ssl双向验证及nginx https ssl证书配置教程的相关文章

ssl双向认证-关于C#实现SSL双向认证

问题描述 关于C#实现SSL双向认证 sslstream 里面怎么操作才能同时验证客户端和服务器呢 解决方案 Java实现 SSL双向认证SSL双向认证java实现ssl双向认证

nginx环境下配置ssl加密(单双向认证、部分https)_nginx

nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换(rewrite)到https,后来自动化测试结果说响应速度太慢,https比http慢慢30倍,心想怎么可能,鬼知道他们怎么测的.所以就试了一下部分页面https(不能只针对某类动态请求才加密)和双向认证.下面分节介绍. 默认nginx是没有安装ssl模块的,需要编译安装nginx时加入--with

使用Nginx实现HTTPS双向验证的方法_nginx

https单向验证应用广泛想必大家都很熟悉,我已经在一篇博文中分享过,这次来看看Nginx如何实现双向验证. 单向验证与双向验证的区别: 单向验证: 指客户端验证服务器端证书,服务器并不需要验证客户端证书. 双向验证:指客户端验证服务器端证书,而服务器也需要通过CA的公钥证书来验证客户端证书. 详细的握手过程: 单向验证 浏览器发送一个连接请求给安全服务器. 1.服务器将自己的证书,以及同证书相关的信息发送给客户浏览器. 2.客户浏览器检查服务器送过来的证书是否是由自己信赖的CA中心所签发的.如

nginx配置ssl加密(单/双向认证、部分https)

nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换(rewrite)到https,后来自动化测试结果说响应速度太慢,https比http慢慢30倍,心想怎么可能,鬼知道他们怎么测的.所以就试了一下部分页面https(不能只针对某类动态请求才加密)和双向认证.下面分节介绍. 默认nginx是没有安装ssl模块的,需要编译安装nginx时加入--with

Nginx服务器的SSL证书配置以及对SSL的反向代理配置_nginx

Nginx的SSL证书配置 1.使用openssl实现证书中心由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书.服务端证书.客户端证书中都相同 Country Name State or Province Name Locality Name Organization Name Organizational Unit Name Country Name State or Province Name Locality Name Organization Name Org

阿里云 ssl证书手把手教程 及nginx文件配置 安装完成后出现下载弹出窗问题的解决

1.登录阿里云-->产品与服务->安全(云盾)-->CA证书服务 2.点击购买证书 3.选择免费型 4.0元支付后,点击证书控制台进入 5.补全信息 6.填写自己的域名 7.进一步补全信息,记得勾选红色标记,最后提交审核 8.10多分钟后审核就能通过,点击刚才提交的那条信息点击下载证书,然后解压得到两个文件,不要去修改他们 9.登陆到自己的服务器目录,在nginx/conf目录下新建cert目录并修改权限为775,将刚才解压的两个文件上传到cert目录下 10.配置conf文件,在ngi

nginx下配置https ssl的例子

首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel 然后就是自己颁发证书给自己 #cd /usr/local/nginx/conf #openssl genrsa -des3 -out server.key 1024 #openssl req -new -key server.key -out server.csr #openssl rsa -in server.key -out serv

nginx负载均衡篇二、nginx配置

如果不知道在Linux下如何安装nginx请参考前一篇文章. nginx负载均衡的配置较apache要简单许多,这里用nginx做负载均衡将不再描述tomcat集群的配置,如果对tomcat集群配置有不懂的地方,请参考Apache反向代理结合Tomcat集群来实现负载均衡(三).tomcat集群文章进行配置.下边进入正题,开始配置nginx负载均衡. 先来看下nginx的完全配置: #user nobody; worker_processes 1; #error_log logs/error.l

CentOS 6.1 环境中部署nginx、php(包括fastcgi)、虚拟主机配置_Linux

部署时间:2012-07-24 OS环境:CentOS 6.1 nginx:nginx-1.2.2 PHP:PHP5.3.14 0.安装依赖包 复制代码 代码如下: yum install openssl-devel pcre-devel zlib-devel libjpeg-devel libpng-devel freetype-devel gcc make 1.添加 www 用户用来执行nginx 复制代码 代码如下: useradd -M -r -s /sbin/nologin -d /o