停止Apache请求SSL密码每个重新启动

使用来自这个网站的指示,但改变他们只是一点点我创build一个使用-newca的CA,我复制cacert.pem到我的cacert.pem ,并作为信任发行人在IE中导入。 然后我做了-newreq和-sign(注意:我做了/full/path/CA.sh -cmd而不是sh CA.sh -cmd )并将证书和密钥移到了apache。

我访问了IE中的网站,并使用.NET代码,它似乎值得信赖,伟大(除非我写在前面预期的WWW)。 但每次我重新启动Apache我需要input我的密码为网站(s?)。

我怎样才能让它,所以我不需要input密码?

您想要从密钥文件中删除密码。 运行这个:

 openssl rsa -in key.pem -out newkey.pem 

请注意,这意味着任何有权访问服务器的人都可以复制密钥(从而滥用)。

过去我一直在从自己的密钥文件中删除密码,因为这是最简单的解决scheme,但从安全angular度来看,这不是最好的主意。 另一种方法是将密码inputApache。 您可以使用httpd.confSSLPassPhraseDialog选项(或其他包含的文件)来执行此操作。

如果您的服务器上只有一个SSL站点,则最简单的forms是:

 # either of these will work SSLPassPhraseDialog |/path/to/passphrase-script SSLPassPhraseDialog exec:/path/to/passphrase-script 

然后,您将创build一个名为/path/to/passphrase-script的非常简单/path/to/passphrase-script ,其中包含以下内容:

 #!/bin/sh echo "put the passphrase here" 

启动时,Apache将输出此脚本的输出并将其用作SSL密钥的密码。 如果您有多个SSL站点,则SSLPassPhraseDialog具有其他可用的方法,因此您可以为所有密钥使用单个脚本,也可以为每个脚本使用一个单独的脚本,或者您想要这样做。

要从PEM文件中删除密码,您可以执行以下操作。 请注意,在私钥和公用证书位于同一文件的情况下,这两个命令都是必需的:

 # you'll be prompted for your passphrase one last time openssl rsa -in mycert.pem -out newcert.pem openssl x509 -in mycert.pem >> newcert.pem 

这将创build一个名为“newcert.pem”的文件,该文件是没有密码的PEM文件。 正如其他答案所指出的那样,从安全的angular度来看,这样做是否应该是一个好主意。

从这里 Sn </s>