zoukankan      html  css  js  c++  java
  • nginx配置https双向验证(ca机构证书+自签证书)

    nginx配置https双向验证(ca机构证书+自签证书)


    nginx配置https双向验证

    服务端验证(ca机构证书)

    客户端验证(服务器自签证书)

    本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件

    这两个文件用于做服务器https验证

    配置如下:

    自签证书步骤如下:

    ca根证书生成

    创建ca私钥

    openssl genrsa -out ca.key 2048

    生成ca证书

    openssl req -new -x509 -days 36500 -key ca.key -out ca.crt

    客户端证书生成

    创建客户端私钥

    openssl genrsa -out client.pem 2048 
    openssl rsa -in client.pem -out client.key

    生成签发请求

    openssl req -new -key client.pem -out client.csr

    使用ca证书进行签发

    openssl x509 -req -sha256 -extfile /etc/pki/tls/openssl.cnf -extensions v3_req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 36500 -out client.crt

    验证签发证书是否正确

    [root@danny ca]# openssl verify -CAfile ca.crt client.crt
    client.crt: OK

    制作p12证书(导入浏览器)

    openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

    操作结束后目录文件

    [root@danny ca]# ls
    ca.crt  ca.key  ca.pem  ca.srl  client.crt  client.csr  client.key  client.p12  client.pem

    验证,导出client.p12点击安装至浏览器,重启浏览器。验证过程截图如下:

    未开启双向认证ssl_verify_client on时(客户端可以直接https访问)

    开启ssl_verify_client on但是没有安装客户端证书时

    安装证书并重启浏览器访问

    https证书管理中可看到已导入

     确认即可访问

    补充1:如果使用ca机构颁发的证书ssl_certificate,ssl_certificate_key 使用ca机构颁发的证书,客户端证书ssl_client_certificate使用自己生成的证书即可。

     

    补充2:在阿里云上申请的https证书的是pem格式,转成cer,crt

    openssl x509 -outform der -in xxx.pem -out xxx.cer
    openssl x509 -outform der -in xxx.pem -out xxx.crt

    补充3:crt文件转换为pem文件

    openssl x509 -in xxx.crt -out xxx.pem

    补充4:生成安卓所有bks包(windos的jdk环境命令行,具体步骤可百度)

    keytool -importcert -keystore client.bks -file client.crt -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

    补充5:常见证书格式说明

    复制代码
    PKCS#7:Cryptographic Message Syntax Standard
    
    PKCS#10:Certification Request Standard
    
    PKCS#12:Personal Information Exchange Syntax Standard
    
    X.509:是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure (PKI) 制定的 ITU-T X509 国际标准。
    
    PKCS#7:常用的后缀是: .P7B .P7C .SPC
    
    PKCS#12:常用的后缀有: .P12 .PFX
    
    X.509:DER 编码(ASCII)的后缀是: .DER .CER .CRT
    
    X.509:PAM 编码(Base64)的后缀是: .PEM .CER .CRT
    
    .cer/.crt:是用于存放证书,它是2进制形式存放的,不含私钥。
    
    .pem:跟crt/cer的区别是它以Ascii来表示。
    
    pfx/p12:用于存放个人证书/私钥,他通常包含保护密码,2进制方式
    
    p10:是证书请求
    
    p7r:是CA对证书请求的回复,只用于导入
    
    p7b:以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。
    复制代码
  • 相关阅读:
    Saltstack module acl 详解
    Saltstack python client
    Saltstack简单使用
    P5488 差分与前缀和 NTT Lucas定理 多项式
    CF613D Kingdom and its Cities 虚树 树形dp 贪心
    7.1 NOI模拟赛 凸包套凸包 floyd 计算几何
    luogu P5633 最小度限制生成树 wqs二分
    7.1 NOI模拟赛 dp floyd
    springboot和springcloud
    springboot集成mybatis
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/14860916.html
Copyright © 2011-2022 走看看