如何在 Mac OS X 中轻松创建 SSL 证书并在 Apache2 中进行配置?

Dan*_*ier 34 mac apache-http-server https ssl macos

我想使用带有 https 的 Mac OS X 进行本地开发测试。我怎样才能轻松地让 Apache2 响应 ssl,仅用于测试建议 - 我不想要一个真正的证书,只是一个让本地 https 工作的假证书

Joh*_*n T 58

对于本地开发测试,自签名证书就足够了。您可以使用OpenSSL 工具包生成一个,如下所示:

生成私钥:

openssl genrsa -des3 -out server.key 1024
Run Code Online (Sandbox Code Playgroud)

输出:

生成 RSA 私钥,1024 位长模数
………………………………………………………………………………………………………………………………………………………… ......++++++
........++++++
e 是 65537 (0x10001)
输入 PEM 密码:
验证密码 - 输入 PEM 密码:

为您的私钥输入密码。

生成 CSR(证书签名请求):

openssl req -new -key server.key -out server.csr
Run Code Online (Sandbox Code Playgroud)

它将请求这样的详细信息:

国家名称(2 个字母代码)[GB]:
州或省名称(全名)[伯克希尔]:
地点名称(例如,城市)[纽伯里]:
组织名称(例如,公司)[My Company Ltd]:
组织单位名称(例如,部分)[]:
通用名称(例如,您的姓名或服务器的主机名)[]:
电子邮件地址 []:
请输入以下“额外”属性
与您的证书请求一起发送
挑战密码 []:
可选的公司名称 []:

它相当简单,通用名称是您服务器的主机名,如括号中所示。

生成自签名证书:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Run Code Online (Sandbox Code Playgroud)

在 httpd.conf 中为 Apache 配置 SSL:

SSL引擎开启
SSLCertificateFile /path/to/generated/server.crt
SSLCertificateKeyFile /path/to/generated/server.key

(用证书和密钥的路径适当地替换路径)

重启阿帕奇

apachectl restart
Run Code Online (Sandbox Code Playgroud)

Apache 会要求您输入密钥的密码。如果您认为您会经常关闭服务器,您可能需要从密钥中删除密码,这样您就可以避免每次都输入它。如果没有,请不要担心。如果是这样,请在第 2 步(生成 CSR)之后完成此步骤:

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key
Run Code Online (Sandbox Code Playgroud)