以下章节涵盖了创建私钥文件、证书签名请求和自签名证书的步骤。如果您计划获取由证书颁发机构签名的证书,您将需要创建一个证书签名请求 (CSR)。否则,您可以创建一个自签名证书。
要创建私钥,您必须安装并配置了带有 Apache 的 OpenSSL 工具包。以下示例使用 OpenSSL 命令行工具,默认情况下该工具位于 /usr/local/ssl/bin 目录中。示例假设包含 OpenSSL 命令行工具的目录已添加到 $PATH 中。
要使用三重 DES 加密标准(推荐)创建私钥,请使用以下命令
openssl genrsa -des3 -out filename.key 1024
系统将提示您输入并重新输入密码短语。如果您选择使用三重 DES 加密,则每次从冷启动启动 SSL 服务器时,系统都会提示您输入密码(当使用 restart 命令时,系统不会提示您输入密码)。你们中的一些人可能会觉得此密码提示很麻烦,尤其是在您需要在非工作时间启动系统时。或者,您可能认为您的系统已经足够安全。因此,如果您选择不设置密码提示(因此不使用三重 DES 加密),请使用以下命令。如果您宁愿只创建 512 位密钥,则省略命令末尾的 1024,OpenSSL 将默认为 512 位。使用较小的密钥速度稍快,但安全性也较低。
要创建不使用三重 DES 加密的私钥,请使用以下命令
openssl genrsa -out filename.key 1024
要向现有私钥添加密码,请使用以下命令
openssl -in filename.key -des3 -out newfilename.key
要从现有私钥中删除密码,请使用以下命令
openssl -in filename.key -out newfilename.key
注意: 您的私钥将在当前目录中创建,除非另有指定。有 3 种简单的方法可以处理这种情况。如果 OpenSSL 在您的路径中,您可以从您指定的用于存储密钥文件的目录中运行它(如果您使用 RPM 安装 Apache,则默认目录为 /etc/httpd/conf/ssl.key
;如果您使用源文件安装 Apache,则默认目录为 /usr/local/apache/conf/ssl.key
)。另一个解决方案是将文件从它们创建的目录复制到正确的目录。最后但并非最不重要的一点是,您可以在运行命令时指定路径(例如 openssl genrsa -out /etc/httpd/conf/ssl.key/filename.key 1024
)。无论您如何操作,只要在继续之前完成即可。
有关 OpenSSL 工具包的更多信息,请查看:OpenSSL 网站。
要获得由证书颁发机构签名的证书,您需要创建一个证书签名请求 (CSR)。目的是向证书颁发机构发送足够的信息来创建证书,而无需发送整个私钥或泄露任何敏感信息。CSR 还包含将包含在证书中的信息,例如域名、位置信息等。
openssl req -new -key filename.key -out filename.csr
注意: 使用以下命令可以同时创建私钥和请求。
openssl genrsa -des3 -out filename.key 1024
如果您要获取 CA 签名的证书,则不必创建自签名证书。但是,创建自签名证书非常简单。您只需要一个私钥和您想要保护的服务器名称(完全限定域名)。系统将提示您输入位置信息、通用名称(域名)、组织信息等信息。OpenSSL 在这里为您提供了很大的自由度。证书要正常运行,唯一需要的字段是通用名称(域名)字段。如果此字段不存在或不正确,您将收到来自浏览器的证书名称检查警告。
要创建自签名证书
openssl req -new -key filename.key -x509 -out filename.crt
如果您到目前为止都按照这些说明进行操作,那么此时您不应该有任何问题。如果您已将 CSR 发送给证书颁发机构,但尚未收到您的证书,那么您现在可以休息一下!如果您正在使用自签名证书,或者您已收到您的证书,则可以继续。
/etc/httpd/conf/ssl.key
。/etc/httpd/conf/ssl.crt
。如果它尚未在那里,请将其放在那里。/etc/httpd/conf/ssl.crt
目录。