记录一次配置 SSL
- 下载 win-acme:
- 访问 win-acme 官网 下载最新版本。
- 解压并运行:
- 解压下载的文件,双击
wacs.exe
。
- 解压下载的文件,双击
- 选择选项:
- 选择
N
创建新的证书,并按提示输入你的域名。
- 选择
- 验证域名:
- 根据提示选择验证方法(如 HTTP 或 DNS 验证)。
- 安装证书:
- 验证成功后,win-acme 会自动为你生成并安装证书。
- 定期续订:
- 你可以设置任务计划,以便定期自动续订证书。
双击 wacs.exe
,输入 N
开始。
选择:
2
,然后输入 域名
ACME 服务器需要验证您是否是申请证书的域名的所有者。这在初始设置和每次未来续订时都会发生。有两种主要方法可以做到这一点:回答特定的 http 请求 (http-01) 或创建特定的 dns 记录 (dns-01)。对于通配符标识符,后者是唯一的选择。
可以从 https://github.com/win-acme/win-acme/ 获取各种附加插件。
1:[http] 将验证文件保存在(网络)路径上
2:[http] 从内存提供验证文件
3:[http] 通过 FTP (S) 上传验证文件
4:[http] 通过 SSH-FTP 上传验证文件
5:[http] 通过 WebDav 上传验证文件
6:[dns] 手动创建验证记录(无法自动续订)
7:[dns] 使用 acme-dns 创建验证记录(https://github.com/joohoi/acme-dns)
8:[dns] 使用您自己的脚本创建验证记录
9:[tls-alpn] 回答来自 win-acme 的 TLS 验证请求
C:中止
您希望如何证明对域的所有权?:
选择:6
存储插件证书存储不可用:以管理员身份运行以允许证书存储访问。
当我们拥有证书时,您可以通过一种或多种方式进行存储,以便您的应用程序可以访问它。Windows 证书存储是 IIS 的默认位置(除非您正在管理它们的集群)。
1:IIS 中央证书存储(每个主机的 .pfx)
2:PEM 编码文件(Apache、nginx 等)
3:PFX 存档
4:Windows 证书存储(本地计算机)
5:无(其他)存储步骤
您希望如何存储证书?:
选择:2
File path: 输入存放证书的路径
描述:为私钥 .pem 文件设置的密码。
1:无
2:在控制台中输入 / 粘贴
3:在保管库中搜索
从菜单中选择:
选择:1
gpt:设置密码可以增加安全性,防止未授权访问您的私钥。如果私钥被泄露,设置密码可以防止其被恶意使用。不过,这意味着每次使用证书时,您需要输入密码,这可能会稍显麻烦。选择不设置密码可以简化使用流程,但会降低安全性。选择哪种方式取决于您的需求和环境安全性。
安装插件 IIS 不可用:以管理员身份运行以允许访问 IIS。
将证书保存到您选择的存储区后,您可以选择一个或多个步骤来更新应用程序,例如配置新的指纹或更新绑定。
1:在 IIS 中创建或更新绑定
2:启动外部脚本或程序
3:无(其他)安装步骤
应首先运行哪个安装步骤?:
选择:3
gpt:这是一个步骤,旨在帮助您在安装完 SSL 证书后,选择是否对其他应用程序(如 IIS)进行额外配置。如果您使用的是 Nginx,则可以选择不执行额外的安装步骤。这样就可以直接使用已生成的证书。
选择:
y
添加 dns 记录,选择 txt,如图:
Please press
创建并 验证
记录后,请按 Enter
键
ps:可能需要等一段时间才生效
N:创建证书(默认设置)
M:创建证书(完整选项)
R:运行续订(当前有 0 个到期)
A:管理续订(共 1 个)
O:更多选项…
Q:退出
请从菜单中选择:自己选择
gpt:
chain.pem
- ** 内容 **: 包含证书链(Certificate Chain),即中间证书(Intermediate Certificates)。
- ** 作用 **: 中间证书是由根证书颁发的,它们帮助客户端(浏览器等)验证你的服务器证书的有效性。由于根证书是可信的,但服务器证书是中间证书颁发的,中间证书就起到了连接两者的作用。
- ** 通常由谁提供 **: 由证书颁发机构(CA,Certificate Authority)提供。
- ** 使用场景 **: 当服务器证书并不直接由根证书颁发,而是通过中间证书链时,你需要提供
chain.pem
来帮助客户端构建完整的信任链。
chain-only.pem
- ** 内容 **: 这个文件与
chain.pem
类似,但它只包含中间证书,不包含服务器证书本身。 - ** 作用 **: 只提供证书链,用于配合服务器证书文件一起使用,特别是当你有多个证书文件时。
- ** 区别 **:
chain-only.pem
不包含服务器的证书,只包含中间证书,而chain.pem
可能包含服务器证书和中间证书。 - ** 使用场景 **: 当证书颁发机构提供了单独的中间证书链文件时,且你需要手动指定链证书而不是合并在一起使用时。
crt.pem
- ** 内容 : 这是服务器的主 SSL 证书文件,也叫 ** 证书文件(Certificate) 或 ** 公钥证书(Public Certificate)**。
- ** 作用 **: 该文件包含服务器的公钥,它由证书颁发机构(CA)签名,标识你的网站或服务的身份。客户端(如浏览器)使用该文件验证你的网站是否是你声称的服务器。
- ** 通常由谁提供 **: 由证书颁发机构(CA)提供,或者通过 Let’s Encrypt 这样的服务自动生成。
- ** 使用场景 **: 在配置 HTTPS 时,服务器会将该证书发送给客户端,客户端用来验证服务器的合法性。
key.pem
- ** 内容 : 这是 ** 私钥文件(Private Key),对应你的服务器证书的私钥。
- ** 作用 **: 私钥用于解密通过服务器公钥加密的通信数据,以及生成和验证数字签名。私钥非常重要,必须保密,不能泄露给第三方。如果私钥泄露,你的服务器通信就不再安全。
- ** 由谁生成 **: 私钥通常由你在生成证书请求(CSR)时生成,并且不会由 CA 提供。
- ** 使用场景 **: 在服务器中,它用于解密来自客户端的加密信息,是服务器端 HTTPS 连接中非常关键的部分。
证书文件的组合与作用
- ** 单独的证书文件 ** (
crt.pem
): 这就是你的服务器证书,它由 CA 签署,标识你的服务器身份。 - ** 证书链文件 ** (
chain.pem
/chain-only.pem
): 它们帮助客户端建立信任链,确保客户端可以通过中间证书找到可信的根证书。 - ** 私钥文件 ** (
key.pem
): 私钥文件配合服务器证书一起工作,确保通信加密的安全性。
在 Nginx/Apache 中如何使用
在配置 HTTPS 时,通常需要同时指定这些文件,例如:
1 | server { |
ssl_certificate
通常是服务器证书与中间证书合并在一起的文件(可以是 crt.pem
和 chain.pem
的组合)。而 ssl_certificate_key
则是服务器的私钥文件。
SSL 证书检查:https://ipw.cn/ssl/?site=ipw.cn
补全你的证书链:https://whatsmychaincert.com/