27.6. 生成钥匙

你必须是根用户才能生成钥匙。

首先,使用 cd 命令转换到 /etc/httpd/conf/ 目录中,使用下面的命令删除在安装中生成的假钥匙和证书:

rm ssl.key/server.key
rm ssl.crt/server.crt

其次,你需要生成你自己的随机钥匙。改换到 /usr/share/ssl/certs/ 目录中,键入以下命令:

make genkey

你的系统会显示和以下相似的消息:

umask 77 ; \
/usr/bin/openssl genrsa -des3 1024 > /etc/httpd/conf/ssl.key/server.key
Generating RSA private key, 1024 bit long modulus
.......++++++
................................................................++++++
e is 65537 (0x10001)
Enter pass phrase:

现在,你需要键入口令句。要获得最佳安全性,你的口令应至少包括八个字符,包括数字和标点,且不是词典中的现成词汇。另外请记住,你的口令是区分大小写的。

注记注记
 

你在每次启动安全服务器的时候都需要输入这个口令句,因此请将它牢记在心。

重新键入口令来校验它是否正确。一旦你正确地键入了,一个包括你的钥匙,叫做 >/etc/httpd/conf/ssl.key/server.key 的文件就会被创建。

注意,如果你不想在每次启动安全服务器的时候都输入口令句,你将需要下面这两条命令,而不是 make genkey 来创建钥匙。

使用下面的命令来创建你的钥匙:

/usr/bin/openssl genrsa 1024 > /etc/httpd/conf/ssl.key/server.key

然后使用这条命令来确定钥匙的权限被正确设置:

chmod go-rwx /etc/httpd/conf/ssl.key/server.key

在你使用以上命令创建钥匙后,你将不需要使用口令句来启动安全服务器。

小心小心
 

在你的安全服务器中禁用口令功能是一种安全风险。我们不提倡你禁用安全服务器的口令功能。

不使用口令所造成的问题和主机的安全维护休戚相关。譬如,若有人危害了主机上的常规 UNIX 安全系统,他就可以获取你的密钥(server.key 文件的内容)。该钥匙可以用来提供似乎是来自你的安全服务器的网页。

如果 UNIX 安全系统在主机上被认真维护(及时安装操作系统的补丁和更新;不操作不必要的或冒险的服务等等),安全服务器的口令可能就不是很必要。然而,由于你的安全服务器应该没必要被频繁重新启动,输入口令所能带来的额外保险在多数情况下是值得一行的。

server.key 文件应该被系统的根用户拥有,不应该被其它用户存取。给该文件备份,将备份副本存放在安全之处。你需要备份的原因是,如果你在使用钥匙创建了证书请求后丢失了 server.key 文件,你的证书就不会再生效,而 CA 对此也爱莫能助。你只能再申请(并购买)一份新证书。

如果你打算从 CA 处购买证书,请继续阅读第 27.7 节。如果你打算生成自签的证书,请继续阅读第 27.8 节