云计算核心技术Docker教程:Docker将配置与 Nginx 服务使用

为您的站点生成根 CA 和 TLS 证书和密钥。对于生产站点,您可能希望使用诸如Let’s Encrypt生成 TLS 证书和密钥之类的服务,但此示例使用命令行工具。

生成站点证书

为您的站点生成根 CA 和 TLS 证书和密钥。对于生产站点,您可能希望使用诸如Let’s Encrypt生成 TLS 证书和密钥之类的服务,但此示例使用命令行工具。这一步有点复杂,但只是一个设置步骤,以便您可以将某些内容存储为 Docker 机密。如果你想跳过这些子步骤,你可以使用 Let\’s 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文件。

给TA打赏
共{{data.count}}人
人已打赏
云计算

上海交通大学与澜起科技共建 “集成电路设计前沿技术联合实验室”

2021-6-21 17:55:27

云计算

加速扩张!长城汽车考虑收购奔驰巴西工厂

2021-6-21 18:49:24

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索