生成站点证书
为您的站点生成根 CA 和 TLS 证书和密钥。对于生产站点,您可能希望使用诸如Let’s Encrypt生成 TLS 证书和密钥之类的服务,但此示例使用命令行工具。这一步有点复杂,但只是一个设置步骤,以便您可以将某些内容存储为 Docker 机密。如果你想跳过这些子步骤,你可以使用 Lets Encrypt生成站点密钥和证书,命名文件site.key和 site.crt,然后跳到 配置 Nginx 容器。
1.生成根密钥。
$ openssl genrsa -out “root-ca.key” 4096
2.使用根密钥生成 CSR。
$ openssl req \
-new -key “root-ca.key” \
-out “root-ca.csr” -sha256 \
-subj /C=US/ST=CA/L=San Francisco/O=Docker/CN=Swarm Secret Example CA
3.配置根 CA。编辑一个名为的新文件root-ca.cnf并将以下内容粘贴到其中。这限制了根 CA 只签署叶证书而不是中间 CA。
[root_ca]
basicConstraints = critical,CA:TRUE,pathlen:1
keyUsage = critical, nonRepudiation, cRLSign, keyCertSign
subjectKeyIdentifier=hash
4.签署证书。
$ openssl x509 -req -days 3650 -in “root-ca.csr” \
-signkey “root-ca.key” -sha256 -out “root-ca.crt” \
-extfile “root-ca.cnf” -extensions \
root_ca
5.生成站点密钥。
$ openssl genrsa -out “site.key” 4096
6.生成站点证书并使用站点密钥对其进行签名。
$ openssl req -new -key “site.key” -out “site.csr” -sha256 \
-subj /C=US/ST=CA/L=San Francisco/O=Docker/CN=localhost
7.配置站点证书。编辑一个名为的新文件site.cnf并将以下内容粘贴到其中。这限制了站点证书,使其只能用于对服务器进行身份验证,而不能用于签署证书。
[server]
authorityKeyIdentifier=keyid,issuer
basicConstraints = critical,CA:FALSE
extendedKeyUsage=serverAuth
keyUsage = critical, digitalSignature, keyEncipherment
subjectAltName = DNS:localhost, IP:127.0.0.1
subjectKeyIdentifier=hash
8.签署站点证书。
$ openssl x509 -req -days 750 -in “site.csr” -sha256 \
-CA “root-ca.crt” -CAkey “root-ca.key” -CAcreateserial \
-out “site.crt” -extfile “site.cnf” -extensions server
9.在site.csr和site.cnf文件不需要由Nginx的服务,但你需要他们,如果你想生成一个新的站点证书。保护root-ca.key文件。
Ubuntu是一个以桌面应用为主的Linux操作系统。它是一个开放源代码的自由软件,提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适用于商业环境。Ubuntu将为全球数百个公司提供商业支持。 ...
查看全文Docker采取了一种保守的方法来清理未使用的对象(通常称为“垃圾收集”),例如图像,容器,卷和网络:除非您明确要求Docker这样做,否则通常不会删除这些对象。这可能会导致Docker使用额外的磁盘空...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,四位知情人士今日透露,亚马逊、微软和谷歌这三大云计算服务提供商,正在竞争波音公司(Boeing)价值10亿美元的云服务合同。 这些...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,多位知情人士今日称,继加州、纽约州和华盛顿州之后,马萨诸塞州和宾夕法尼亚州的总检察长也加入到对亚马逊的反垄断调查中。 如今,越来越...
查看全文
您好!请登录