这可能是一个错误的地方,无法深入了解证书验证的详细信息,我不确定我是否完全理解,所以这个答案将集中在wordpress API上。
证书验证的问题是,您需要发行人公司的根证书列表,以便验证特定证书。That list changes 因此,服务器需要更新信息。显然,支持“类似浏览器的功能”并不是服务器管理员想到的主要事情之一,您的软件可能会在一个根本没有定义的服务器上结束,或者只是过时的信息。
Otto的回答详细说明了wordpress core是如何处理它的,它通过提供根证书包来实现,默认情况下,wordpress http API使用它(检查了4.4,不确定何时启动)。但你的插件可能安装在包含过时信息的早期版本上(目前,在4.5发布前一周左右,只有大约50%的wordpress网站运行4.4)。
那么你能做什么呢?
简单选项:由用户决定。最终,这是他的决定,他希望自己的网站有多安全。可能是因为他不能或不想更新他的根证书。
为插件提供您自己的根证书。这样,您可以在根证书需要更新时推送更新。处理它的相关核心api是WP_HTTP::request 使用sslcertificates
$args参数中的参数。更高级别的HTTP API函数可能会以某种方式将该参数传递给它。