如何为通过 Chrome 要求的 IP 地址创建自签名(或由自己的 CA 签名)SSL 证书
How to create a self-signed (or signed by own CA) SSL certificate for IP address that pass Chrome requirements
如何创建 Chrome 可以信任的自签名(或由自己的 CA 签名)的 SSL 证书(将 CA 证书添加到本地计算机后)。
证书必须对本地网络 IP、localhost 和多个域有效
- 准备用于非交互式(无提示)创建证书的配置文件
CA.cnf
→
[ req ]
prompt = no
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
C = US
ST = Localzone
L = localhost
O = Certificate Authority Local Center
OU = Develop
CN = develop.localhost.localdomain
emailAddress = root@localhost.localdomain
localhost.cnf
→
[req]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
countryName = US
stateOrProvinceName = Localzone
localityName = Localhost
organizationName = Certificate signed by my CA
commonName = localhost.localdomain
[req_ext]
subjectAltName = @alt_names
[v3_req]
subjectAltName = @alt_names
[alt_names]
IP.1 = 127.0.0.1
IP.2 = 127.0.0.2
IP.3 = 127.0.0.3
IP.4 = 192.168.0.1
IP.5 = 192.168.0.2
IP.6 = 192.168.0.3
DNS.1 = localhost
DNS.2 = localhost.localdomain
DNS.3 = dev.local
- 生成CA私钥和证书(有效期5年)
openssl req -nodes -new -x509 -keyout CA_key.pem -out CA_cert.pem -days 1825 -config CA.cnf
- 生成网络服务器密钥和 CSR
openssl req -sha256 -nodes -newkey rsa:2048 -keyout localhost_key.pem -out localhost.csr -config localhost.cnf
- 创建证书并由自己的证书颁发机构签名 (valid 1 year)
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
- 利润
输出文件将是:
CA.cnf
→ OpenSSL CA 配置文件。证书创建过程后可能会被删除。
CA_cert.pem
→ [证书颁发机构]证书。必须将此证书添加到浏览器本地授权存储,以信任使用此 CA 创建的所有证书。
CA_cert.srl
→ 随机序号。证书创建过程后可能会被删除。
CA_key.pem
→ 创建新的 [localhost] 证书时必须使用。证书创建过程后可能会被删除(如果您不打算重用它并且CA_cert.pem)。
localhost.cnf
→ OpenSSL SSL 证书配置文件。证书创建过程后可能会被删除。
localhost.csr
→ 证书签名请求。证书创建过程后可能会被删除。
localhost_cert.pem
→ SSL 证书。 必须安装在WEB服务器.
localhost_key.pem
→ 密钥。 必须安装在WEB服务器.
SSL 证书替代名称可以通过
检查
openssl x509 -noout -text -in localhost_cert.pem | grep 'X509v3 Subject Alternative Name' -A 1
如何创建 Chrome 可以信任的自签名(或由自己的 CA 签名)的 SSL 证书(将 CA 证书添加到本地计算机后)。
证书必须对本地网络 IP、localhost 和多个域有效
- 准备用于非交互式(无提示)创建证书的配置文件
CA.cnf
→
[ req ]
prompt = no
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
C = US
ST = Localzone
L = localhost
O = Certificate Authority Local Center
OU = Develop
CN = develop.localhost.localdomain
emailAddress = root@localhost.localdomain
localhost.cnf
→
[req]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
countryName = US
stateOrProvinceName = Localzone
localityName = Localhost
organizationName = Certificate signed by my CA
commonName = localhost.localdomain
[req_ext]
subjectAltName = @alt_names
[v3_req]
subjectAltName = @alt_names
[alt_names]
IP.1 = 127.0.0.1
IP.2 = 127.0.0.2
IP.3 = 127.0.0.3
IP.4 = 192.168.0.1
IP.5 = 192.168.0.2
IP.6 = 192.168.0.3
DNS.1 = localhost
DNS.2 = localhost.localdomain
DNS.3 = dev.local
- 生成CA私钥和证书(有效期5年)
openssl req -nodes -new -x509 -keyout CA_key.pem -out CA_cert.pem -days 1825 -config CA.cnf
- 生成网络服务器密钥和 CSR
openssl req -sha256 -nodes -newkey rsa:2048 -keyout localhost_key.pem -out localhost.csr -config localhost.cnf
- 创建证书并由自己的证书颁发机构签名 (valid 1 year)
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
- 利润
输出文件将是:
CA.cnf
→ OpenSSL CA 配置文件。证书创建过程后可能会被删除。CA_cert.pem
→ [证书颁发机构]证书。必须将此证书添加到浏览器本地授权存储,以信任使用此 CA 创建的所有证书。CA_cert.srl
→ 随机序号。证书创建过程后可能会被删除。CA_key.pem
→ 创建新的 [localhost] 证书时必须使用。证书创建过程后可能会被删除(如果您不打算重用它并且CA_cert.pem)。localhost.cnf
→ OpenSSL SSL 证书配置文件。证书创建过程后可能会被删除。localhost.csr
→ 证书签名请求。证书创建过程后可能会被删除。localhost_cert.pem
→ SSL 证书。 必须安装在WEB服务器.localhost_key.pem
→ 密钥。 必须安装在WEB服务器.
SSL 证书替代名称可以通过
检查openssl x509 -noout -text -in localhost_cert.pem | grep 'X509v3 Subject Alternative Name' -A 1