我使用 acme.sh(强烈推荐)来生成证书。我这里有几个文件,我不明白应该分享哪些文件,应该保留哪些文件。
这些是我拥有的文件:
ca.cer
example.com.cer
example.com.csr
example.com.key
fullchain.cer
example.com.conf
example.com.csr.conf
uwsgi 需要这样的命令
uwsgi --master --https 0.0.0.0:8443,foobar.crt,foobar.key
这些文件看起来都彼此相似,但它们是键。我的问题是,每个文件的内容是什么?
域(例如
example.com
)证书和密钥文件通常是服务器需要知道的两个文件(例如 Windows 上的 Nginx 或 Apache)。某些软件可能会使用fullchain
证书,或者与域证书(例如Linux 上的 Apache)一起使用,或者代替它(显然uwsgi
),但这取决于软件本身。具体来说
uwsgi
,根据这个Let's Encrypt 论坛帖子,似乎需要fullchain
证书和example.com
密钥来启动uwsgi
具有 SSL 支持的示例服务器(因此任何fullchain
证书都可以代替foobar.crt
您的示例)。请注意官方 acme.sh GitHub 帐户声明“请勿使用文件
~/.acme.sh/
夹中的 certs 文件,它们仅供内部使用,文件夹结构将来可能会更改。”域证书文件通常发送给连接到服务器的客户端,密钥文件保存在服务器本身上。这些文件用作在客户端和服务器之间建立安全通信的过程的一部分。
example.com.csr
是一个证书签名请求(CSR),一个发送到证书颁发机构(CA)(例如 Let's Encrypt)的中间文件,允许 CA 向您颁发最终证书集。该
fullchain
文件是一个签名域证书(如果我没记错的话)与一个或多个构成颁发证书颁发机构 (CA) 链的中间证书连接。这篇关于证书链如何工作的数字证书文章可能对中间 CA 证书以及它们为何重要有一些兴趣。关于剩下的项目,虽然我不熟悉
acme.sh
,但我的猜测CA.cer
是上面提到的中间 CA 证书。它似乎也可能是给定域example.com.conf
的example.com.csr.conf
配置文件。acme.sh
但同样,这是一个猜测。但是,您应该能够通过简单地在标准文本编辑器中打开相关文件来验证这些假设(即通过比较
example.com.cer
,ca.cer
并fullchain.cer
简单地查看相关.conf
文件)。