如何使用 .pem 格式的加密密钥配置 nginx + ssl

Zap*_*ppl 13 ssl nginx openssl ssl-certificate

我想为现有的 nginx 服务器设置 ssl。我得到了证书和相应的(加密的)私钥。两者都是 .pem 格式(每个都在自己的文件中)。

关于所有教程(例如1),我发现假设有一个 .key 格式的密钥。

当我配置 + 启动 nginx 时,到目前为止证书似乎已被接受。但是,我被要求提供私钥文件的 PEM 密码短语。

我是否正确地假设我唯一的选择是使用密码设置 nginx“ssl_password_file”或使用 openssl/libressl 将包含加密密钥的 .pem 文件转换为像这样的未加密的 .key 文件?

我还应该如何处理 .pem 格式的加密私钥?

Ric*_*ith 17

你几乎已经回答了你自己的问题。

不要被文件扩展名所迷惑。私钥,无论是否受密码保护,通常采用 PEM 格式。通常.pem用于证书文件,所以.key选择了相应的私钥。但文件扩展名无关紧要。

所以你有三个选择:

  • 手动引导服务器并在控制台提供密码。这可能是最安全的选择,但在许多情况下也不切实际。
  • 使用提供密码文件 ssl_password_file
  • 使用永久删除密码保护 openssl

例如,要从私钥中删除密码:

openssl rsa -in original.key -out plain.key
Run Code Online (Sandbox Code Playgroud)