• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Nginx+SSL实现双向认证的示例代码
    POST TIME:2021-10-16 17:42

    首先创建一个目录

    cd /etc/nginx
    mkdir ssl
    cd ssl

    CA与自签名

    制作CA私钥

    openssl genrsa -out ca.key 2048

    制作 CA 根证书(公钥)

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

    注意:

    1、Common Name 可以随意填写
    2、其他需要填写的信息为了避免有误,都填写 . 吧

    服务器端证书

    制作服务器端私钥:

    openssl genrsa -out server.pem 1024
    openssl rsa -in server.pem -out server.key

    生成签发请求:

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

    注意:

    1、Common Name 得填写为访问服务时的域名,这里我们用 usb.dev 下面 NGINX 配置会用到
    2、其他需要填写的信息为了避免有误,都填写 . 吧(为了和 CA 根证书匹配)

    用CA签发

    openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt

    客户端证书

    与服务端证书类似

    注意:

    1、Common Name可以随意填写
    2、其他需要填写的信息为了避免有误,都填写 . 吧(为了和 CA 根证书匹配)

    至此需要的证书都弄好了,我们可以开始配置 NGINX 了。

    Nginx配置

    server {
        listen 443;
        server_name usb.dev;
    
        index index.html;
    
        root /data/test/;
    
        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;
        ssl_client_certificate /etc/nginx/ssl/ca.crt;
        ssl_verify_client on;
    }
    
    

    请求验证

    验证过程可以选择在其他机器或是本机,为了能够解析 usb.dev,还需要配置一下 /etc/hosts:

    ip地址 usb.dev

    如果用浏览器验证,需要把客户端证书导出成 p12 格式的

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

    从服务器上将几个证书下载下来,然后安装到可信的证书列表,点击刚才生成的p12文件输入证书的密码将安装至个人列表。
    然后关闭浏览器,重新输入域名,会出现ssl双向验证的证书提示。选择证书即可。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:linux nc命令小结
    下一篇:基于Docker的Etcd分布式部署的方法步骤
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信