gpt4 book ai didi

ssl - 未签名的 SSL 证书和本地 curl 的 High Sierra 问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:15 25 4
gpt4 key购买 nike

对于几个 OSX 版本,我一直在使用 these tutorials设置本地开发环境,包括 SSL。

我也一直能够基于这样的文件夹结构创建动态虚拟主机:

# Auto-VirtualHosts with .dev
<VirtualHost *:8080>
ServerName dev
ServerAlias *.dev

CustomLog "/Users/username/Sites/logs/dev-access_log" combinedmassvhost
ErrorLog "/Users/username/Sites/logs/dev-error_log"

VirtualDocumentRoot /Users/username/Sites/%-2+
</VirtualHost>
<VirtualHost *:8443>
ServerName dev
ServerAlias *.dev
Include "/Users/username/Sites/ssl/ssl-shared-cert.inc"

CustomLog "/Users/username/Sites/logs/dev-access_log" combinedmassvhost
ErrorLog "/Users/username/Sites/logs/dev-error_log"

VirtualDocumentRoot /Users/username/Sites/%-2+
</VirtualHost>

包含的 SSL 文件是这样的:

SSLEngine On
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile "/usr/local/etc/httpd/server.crt"
SSLCertificateKeyFile "/usr/local/etc/httpd/server.key"

为了生成证书,我运行了这段代码:

$ cd /usr/local/etc/httpd
$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout server.key -out server.crt

在本地,这对我来说一直没问题。我可以成功运行 curl,尤其是在 WordPress 开发中,我可以运行可能使用 curlcron 任务。

升级到 High Sierra 后,我在 WordPress 中收到以下错误:

There was a problem spawning a call to the WP-Cron system on your site. This means WP-Cron events on your site may not work. The problem was: cURL error 60: SSL certificate problem: self signed certificate

并且在命令行上,当我对本地 HTTPS URL 运行 curl 时,出现此错误:

curl: (60) SSL certificate problem: self signed certificate More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.

我已经尝试重新安装初始教程中的所有项目,但到目前为止没有任何帮助。我还尝试从 Homebrew 版本安装 curl 而不是内置版本,但这似乎没有任何效果。关于 High Sierra 有什么已知的东西可以让它对此更加挑剔吗?如果是这样,我可以做些什么来绕过本地开发吗?

最佳答案

您必须将自签名证书添加到 curl CA 证书库中。

首先,您必须通过运行存储在以下位置的 perl 脚本来生成 ca 包:

/usr/local/Cellar/curl/7.56.1/libexec/mk-ca-bundle.pl

编辑生成的文件:

/usr/local/Cellar/curl/7.56.1/libexec/ca-bundle.crt

并使用相同的语法添加您的自签名证书。

您可以通过以下方式获取证书:

openssl s_client -showcerts -connect my.server.com:443

从以下位置复制所有内容:

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----

包括 BEGINEND 行。然后创建一个文件 ~/.curlrc 包含:

cacert /usr/local/Cellar/curl/7.56.1/libexec/ca-bundle.crt

关于ssl - 未签名的 SSL 证书和本地 curl 的 High Sierra 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47315845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com