互联网技术 / 互联网资讯 · 2024年1月13日 0

Docker教程:使用Docker配置Nginx服务

生成站点证书

为您的站点生成根 CA 和 tls 证书和密钥。对于生产站点,您可能希望使用诸如Let&Rsquo;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文件。