zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

nginx配置ssl双向验证的方法

配置SSL方法Nginx 验证 双向
2023-06-13 09:15:30 时间

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上

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

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

选择证书并导入

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