如何为通过 Chrome 要求的 IP 地址创建自签名(或由自己的 CA 签名)SSL 证书

rzl*_*vmp 9 openssl ssl-certificate

如何创建可被 Chrome 信任的自签名(或由自己的 CA 签名)SSL 证书(将 CA 证书添加到本地计算机后)。

证书必须对本地网络 IP、本地主机和多个域有效

rzl*_*vmp 17

    \n
  1. 准备配置文件以非交互方式创建证书(无提示)
  2. \n
\n

CA.cnf\xe2\x86\x92

\n
[ req ]\nprompt = no\ndistinguished_name = req_distinguished_name\n\n[ req_distinguished_name ]\nC = US\nST = Localzone     \nL = localhost    \nO = Certificate Authority Local Center\nOU = Develop      \nCN = develop.localhost.localdomain\nemailAddress = root@localhost.localdomain\n
Run Code Online (Sandbox Code Playgroud)\n

localhost.cnf\xe2\x86\x92

\n
[req]\ndefault_bits  = 2048\ndistinguished_name = req_distinguished_name\nreq_extensions = req_ext\nx509_extensions = v3_req\nprompt = no\n\n[req_distinguished_name]\ncountryName = US\nstateOrProvinceName = Localzone\nlocalityName = Localhost\norganizationName = Certificate signed by my CA\ncommonName = localhost.localdomain\n\n[req_ext]\nsubjectAltName = @alt_names\n\n[v3_req]\nsubjectAltName = @alt_names\n\n[alt_names]\nIP.1 = 127.0.0.1\nIP.2 = 127.0.0.2\nIP.3 = 127.0.0.3\nIP.4 = 192.168.0.1\nIP.5 = 192.168.0.2\nIP.6 = 192.168.0.3\nDNS.1 = localhost\nDNS.2 = localhost.localdomain\nDNS.3 = dev.local\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 生成CA私钥和证书(有效期5年)
  2. \n
\n
openssl req -nodes -new -x509 -keyout CA_key.pem -out CA_cert.pem -days 1825 -config CA.cnf\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 生成 Web 服务器密钥和 CSR
  2. \n
\n
openssl req -sha256 -nodes -newkey rsa:2048 -keyout localhost_key.pem -out localhost.csr -config localhost.cnf\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 创建证书并由自己的证书颁发机构签名(有效期1年
  2. \n
\n
openssl x509 -req -days 398 -in localhost.csr -CA CA_cert.pem -CAkey CA_key.pem -CAcreateserial -out localhost_cert.pem -extensions req_ext -extfile localhost.cnf\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 利润
  2. \n
\n

输出文件将是:

\n
    \n
  • CA.cnf\xe2\x86\x92 OpenSSL CA 配置文件。证书创建过程后可能会被删除。
  • \n
  • CA_cert.pem\xe2\x86\x92 [证书颁发机构] 证书。必须将此证书添加到浏览器本地授权存储中,以信任使用此 CA 创建的所有证书。
  • \n
  • CA_cert.srl\xe2\x86\x92 随机序列号。证书创建过程后可能会被删除。
  • \n
  • CA_key.pem\xe2\x86\x92 创建新的 [localhost] 证书时必须使用。证书创建过程后可能会被删除(如果您不打算重复使用它和 CA_cert.pem)。
  • \n
  • localhost.cnf\xe2\x86\x92 OpenSSL SSL 证书配置文件。证书创建过程后可能会被删除。
  • \n
  • localhost.csr\xe2\x86\x92 证书签名请求。证书创建过程后可能会被删除。
  • \n
  • localhost_cert.pem\xe2\x86\x92 SSL 证书。必须安装在WEB服务器上
  • \n
  • localhost_key.pem\xe2\x86\x92 密钥。必须安装在WEB服务器上
  • \n
\n

SSL 证书备用名称可以通过以下方式检查

\n
openssl x509 -noout -text -in localhost_cert.pem | grep \'X509v3 Subject Alternative Name\' -A 1\n
Run Code Online (Sandbox Code Playgroud)\n

  • “这不是自签名” → 好点。更新。`它是数十个其他 Q 的重复项` → 它是数十个 Q 的组。1. 如何使用替代名称,2. 如何使用自己的 CA 创建证书,3. 如何将 IP 地址设置为替代名称,4. 它更短(一些 openssl 命令分为一个),5. 这里解释为什么过期时间只有398天,6.如何自动创建证书而不提示。我没有在一处看到所有这些信息。`人们也不会读你的文章` → 没什么大不了的 (7认同)