本操作方法将演示如何安装SSL /TLS macOS 10.14 Mojave上的证书。 提供了两种方案:
根据您的情况,您可能需要做这两项中的一项或两项; 例如,如果您正在设置本地开发环境,并且希望该证书可用于Apache和客户端软件(例如Web浏览器),则可以同时使用。 在这两种情况下,我们都将假设您生成了证书签名请求(CSR),如我们的 如何做。 在这种情况下,您的私钥将已经安装在“钥匙串访问”中。 我们还将假设验证已完成,并且您的证书可以下载了。 有关订购和检索证书的信息,请参阅我们的方法, 订购和检索SSL /TLS 证书.
第一步骤
-
使用以下命令从您的用户帐户下载证书捆绑包 阿帕奇 下载链接。
-
解压缩文件。 它应包含您的证书(文件名将基于您的通用名称 CSR 结束
.crt
)和CA捆绑包(ca-bundle-client.crt
).
在钥匙串访问中安装证书
-
可选 钥匙串Access.app, 位于 / Applications / Utilities中.
-
选择安装了密钥对的钥匙串。 在这种情况下 系统 钥匙扣。
-
导航 文件>导入项目…
-
导航到您的新证书,选择它,然后单击 可选.
-
输入您的密码并单击 修改钥匙串.
- 重复上述步骤3-5
ca-bundle-client.crt
安装中间证书链。 -
您可以通过选择来确认证书已安装 证书 从左侧边栏菜单中。
安装Apache证书
-
如果你 产生了您的 CSR 在钥匙串访问中,您将需要将私钥导出为文件以供Apache使用。 打开 钥匙串Access.app, 位于 / Applications / Utilities中。 (如果你 产生了 CSR 使用OpenSSL 或使用SSL.com CSR 经理 您可以跳到下面的第9步。)
-
使用左侧边栏菜单来缩小选择范围,找到并选择您要导出的私钥。 在这种情况下,我们将导出用于
www.lunchinhouston.com
, 位于System
钥匙扣。 -
文件>导出项目… 从菜单。
-
确保选择的文件格式为 个人信息交换(.p12) 并将文件保存到可以找到它的地方。
-
输入密码以解锁钥匙串(如果出现提示),然后为.p12文件创建一个密码,然后单击 OK.
-
可选
Terminal.app
, 位于/Applications/Utilities/
文件夹,然后导航到第12步中存储.p5文件的文件夹。 -
使用
openssl
从.p12文件中提取私钥。 (请注意: 将此处显示的文件名替换为.p12文件的名称以及希望用作密钥的文件名)。 首先将提示您输入在步骤5中创建的密码,然后提示您创建并验证密码以保护私钥。$ openssl pkcs12 -nocerts -in Certificates.p12 -out privkey.key
-
接下来,您将需要解密私钥。 输入以下命令,根据需要替换输入和输出文件的名称(使用如下所示的相同名称将覆盖加密文件)。 系统将提示您输入在步骤7中创建的密码。
$ openssl rsa -in privkey.key -out privkey.key
- 将私钥,证书和中间包文件放在安全目录中,Apache可以在其中读取它们。 对于此方法,我们将使用
/private/etc/apache2/
。 根据选择的位置,您可能需要使用sudo
移动文件。 -
打开Apache的主要配置文件,
httpd.conf
,在文本编辑器中。 在Mojave标准Apache安装中,此文件位于/private/etc/apache2/
目录。 打开文件进行编辑nano
,执行以下命令:$ sudo nano /private/etc/apache2/httpd.conf
请注意: 因为你在用sudo
要暂时假设有足够的特权来编辑此文件,将提示您输入密码,然后继续。 -
在中找到这些行
httpd.conf
并通过删除它们来取消注释#
每行开头的字符:LoadModule socache_shmcb_module libexec / apache2 / mod_socache_shmcb.so ... LoadModule ssl_module libexec / apache2 / mod_ssl.so ...包括/private/etc/apache2/extra/httpd-vhosts.conf ...包括/ private / etc / apache2 / extra / httpd-ssl.conf
请注意: 如果你正在使用nano
编辑httpd.conf
,您可以使用来搜索文本字符串Ctrl-W
- 已保存
httpd.conf
并退出文本编辑器(Ctrl-O
,其次是Ctrl-X
innano
). -
接下来打开
httpd-ssl.conf
进行编辑:$ sudo nano /private/etc/apache2/extra/httpd-ssl.conf
-
查找以下行,并确保Apache正在侦听端口
443
。 如果端口设置为8443
或其他一些值,将其更改为443
.##当我们还提供SSL时,我们必须侦听#标准HTTP端口(请参见上文)和HTTPS端口#侦听443
- 搜索以字符串开头的行
<VirtualHost _default_:
(端口号可能会有所不同)并注释掉或删除 所有 和之间的界线</virtualhost>
. - 已保存
httpd-ssl.conf
并退出文本编辑器。 -
接下来打开
httpd-vhosts.conf
进行编辑:$ sudo nano /private/etc/apache2/extra/httpd-vhosts.conf
-
为您要保护的站点创建一个VirtualHost条目(使用您的网站和服务器的实际值,而不是此处显示的占位符),然后保存文件并退出文本编辑器。
DocumentRoot“/PATH/TO/WEBSITE”SSLCertificateFile“https://ee443cc2f1.rocketcdn.me/private/etc/apache8/server.crt”上的 ServerName SERVERNAME SSLEngine“SSLCertificateKeyFile”https://ee2cc2f1.rocketcdn.me/private/etc /apache8/server.key" SSLCertificateChainFile "https://ee2cc2f1.rocketcdn.me/private/etc/apache8/ca-bundle-client.crt"
-
使用以下命令检查您的Apache配置:
$ sudo apachectl 配置测试
-
如果一切正常,请重新启动Apache:
$ sudo apachectl重新启动
-
如果一切正常,就完成了! 您应该能够在Web浏览器中导航到HTTPS网站。