我刚刚向 Apache 添加了 SSL 证书。问题是 Apache 在系统启动时运行,在我的服务器打开后,Apache 运行但不运行。我输入了我电脑的 IP 地址,我的浏览器一直在尝试连接。我看到一个旋转的圆圈。
然后我进入我的服务器,杀死所有与 Apache 相关的进程,然后运行sudo service apache2 restart
. 由于sudo
提示我输入我的超级用户密码,但在我输入后,Apache 要求输入 .key 文件的密码。我把它放进去,然后 Apache 工作正常。SSL 甚至可以工作。
那么为什么 Apache 直到我重新启动它才能工作?是因为它要我每次启动时都输入密码吗?如果是这样,我如何在我的 Xubuntu 服务器上做到这一点?我可以做到这样我就不必每次都把它放进去吗?
您的 SSL 证书的私钥似乎受密码保护。要测试是否真的如此,请使用命令检查密钥文件的开头head -3 your.key
。此私钥已加密:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,C251E8A1254B933D763703EE1C364AB7
Run Code Online (Sandbox Code Playgroud)
此文件未加密:
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAvbeWtO9nQP4cFFuhGrOM/WQ73oTQHU7mzZB9CaA3R2iwjDNz
wwlDtT9tfo0tCC2ib9STfeM6AYrdI3wauzCu7AV4CFGSMP3HLX8DJuk8zzbdQHHv
Run Code Online (Sandbox Code Playgroud)
要从 RSA 私钥中删除密码,请使用以下命令:
umask 077
mv your.key old-with-pass.key
openssl rsa -in old-with-pass.key -out your.key
Run Code Online (Sandbox Code Playgroud)
该umask 077
命令对于确保不会使用过度宽松的权限创建新密钥是必要的。或者,您可以手动更改文件的模式chmod 400 new.key
。根据密钥的位置,您可能必须在openssl
,mv
和chmod
命令前加上sudo
。
小智 6
@JamesSneeringer在http://serverfault.com 上回答。
过去我一直对从我自己的密钥文件中删除密码感到内疚,因为这是最简单的解决方案,但在安全方面,这不是最好的主意。另一种方法是将密码提供给 Apache。您可以使用
SSLPassPhraseDialog
您的httpd.conf
(或它包含的其他文件)中的选项 执行此操作。如果您的服务器上只有一个 SSL 站点,那么最简单的形式是:
Run Code Online (Sandbox Code Playgroud)# either of these will work SSLPassPhraseDialog |/path/to/passphrase-script SSLPassPhraseDialog exec:/path/to/passphrase-script
然后,您将创建一个名为的非常简单的脚本
/path/to/passphrase-script
,其中包含如下内容:Run Code Online (Sandbox Code Playgroud)#!/bin/sh echo "put the passphrase here"
启动时,Apache 将获取此脚本的输出并将其用作 SSL 密钥的密码。如果您有多个 SSL 站点,
SSLPassPhraseDialog
则可以通过其他方式使用它,因此您可以为所有密钥使用一个脚本,或者为每个密钥使用一个单独的脚本,或者您想怎么做。
归档时间: |
|
查看次数: |
35504 次 |
最近记录: |