zoukankan      html  css  js  c++  java
  • 生成带subjectAltName的ssl服务端证书【亲测有效】

    Chrome浏览器的证书验证规则比Edge和Firefox更严格,如果证书不包含SubjectAltName,Chrome会认为其不安全,所以自签证书时要添加做额外配置来添加SubjectAltName。【这个问题困扰了我两天,尝试过很多网上的方法,都没用,崩溃】

    1. 说明:
      • 证书制作过程在Centos7环境进行,且使用Centos7自带的OpenSSL工具。
      • 不需要生成CA相关文件,直接生成服务端证书。
      • 浏览器需要将生成的server.crt证书安装到【受信人的根证书颁发机构】下。
      • Nginx需要同时配置上server.crt和server.key两个文件。
      • 浏览器还要修改本地C:WindowsSystem32driversetchosts文件,配置证书所对应站点的域名,在浏览器本机的DNS映射。

    建议先创建一个空目录,作为证书制作空间,后续所有操作都在该目录下进行。

    1. 首先新建一个小配置文件mySsl.conf,只包含如下内容:
    [ req ]
    default_bits       = 4096
    distinguished_name = req_distinguished_name
    req_extensions     = req_ext
    
    [ req_distinguished_name ]
    countryName                 = Country Name (2 letter code)
    countryName_default         = cn
    stateOrProvinceName         = State or Province Name (full name)
    stateOrProvinceName_default = sc
    localityName                = Locality Name (eg, city)
    localityName_default        = cd
    organizationName            = Organization Name (eg, company)
    organizationName_default    = my
    organizationalUnitName            = Organizational Unit Name (eg, section)
    organizationalUnitName_default    = as
    commonName                  = Common Name (e.g. server FQDN or YOUR name)
    commonName_max              = 64
    commonName_default          = yang.com
    
    [ req_ext ]
    subjectAltName = @alt_names
    
    # 此段落标题的方括号两边【没有空格】,只有同时配有IP和域名,才能在IP和域名访问时都成功识别。
    [alt_names]
    IP.1    = 192.168.50.62
    DNS.1   = yang.com
    DNS.2   = yang.net
    
    1. 生成私钥:
    openssl genrsa -out server.key 4096
    
    1. 生成证书请求文件:

    CSR是Certificate Signing Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

    openssl req -new -sha256 -out server.csr -key server.key -config mySsl.conf 
    

    这里会要求输入一系列参数,可以选择不填直接回车。

    1. 检查证书申请文件内容:
    openssl req -text -noout -in server.csr
    

    应该可以看到:
    X509v3 Subject Alternative Name:
    IP Address:192.168.50.62, yang.com, DNS:yang.com, DNS:yang.net

    1. 利用证书请求文件生成证书,执行如下命令:
    openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt -extensions req_ext -extfile mySsl.conf
    
  • 相关阅读:
    [Coding Made Simple] Text Justification
    [Coding Made Simple] Box Stacking
    [Coding Made Simple] Maximum Sum Increasing Subsequence
    [Coding Made Simple] Longest Palindromic Subsequence
    [Coding Made Simple] Longest Increasing Subsequence
    [Coding Made Simple] Minimum jump to reach end
    [LeetCode 115] Distinct Subsequences
    [Coding Made Simple] String Interleaving
    [Coding Made Simple] Maximum Sub Square Matrix
    [GeeksForGeeks] Populate inorder successor for all nodes in a binary search tree
  • 原文地址:https://www.cnblogs.com/JaxYoun/p/12692574.html
Copyright © 2011-2022 走看看