OpenSSL 标头版本!= 影响 APNS 的 HTTP/2 的 OpenSSL 库版本

Posted

技术标签:

【中文标题】OpenSSL 标头版本!= 影响 APNS 的 HTTP/2 的 OpenSSL 库版本【英文标题】:OpenSSL Header Version != OpenSSL Library Version affecting HTTP/2 for APNS 【发布时间】:2016-11-15 10:50:57 【问题描述】:

我的 openSSL 上有这个奇怪的组合。

我的命令提示符 openssl version 返回库版本 -> OpenSSL 1.0.2h 2016 年 5 月 3 日

我的 php curl 调用在哪里 -> echo "openssl version text: " . OPENSSL_VERSION_TEXT . "\n"; 返回标题版本:openssl 版本文本:OpenSSL 1.0.1t 2016 年 5 月 3 日

我想知道如何更新 OpenSSL 标头版本,因为我需要 1.0.2 才能使 APNS 能够正常工作,因为我仍在使用

HTTP/2 client preface string missing or corrupt. Hex dump for received bytes: 504f5354202f332f6465766963652f613433646466376235

我正在使用 WAMP Apache/2.4.17 (Win64) PHP/5.6.16

【问题讨论】:

基本上不用担心 @RiggsFolly 不幸的是我需要更新它。请查看我更新的问题 我认为你需要升级你的 PHP 版本 @RiggsFolly 那是最新的 WAMP... 另见How to install: OpenSSL + WAMP 和Enabling OpenSSL in WAMP。 OpenSSL 1.0.1 和 1.0.2 应该是二进制兼容的,因此您可以换入新的 DLL。 【参考方案1】:

您只能通过升级 PHP 版本或重新安装 PHP/5.6.16 来解决此问题。之后,您的两个 Openssl 版本将相同。

我也遇到过这个问题,花了很多时间找到了这个解决方案。

【讨论】:

你将如何在 WAMP 中做到这一点? @Desmond 如果可能,请重新安装 WAMP。否则请访问这些 URL 以将 PHP 升级到 wamp。 1) web-technology-experts-notes.in/2015/06/… 2) forum.wampserver.com/read.php?2,116940,117978#msg-117978 3) superuser.com/questions/335941/…【参考方案2】:

我遇到了同样的基本问题,并且重新安装了 php 5.6 无效。我现在有 1.0.1p 的库版本和 1.0.2j 的标头版本。我已经删除了 openssl、mod_php、apache 2.4 和 php 5.6 并重新安装了它们,这些都将标头版本更新为 1.0.2j,但没有更新库版本。

我不认为这只是重新安装 php 5.6 这么简单,至少在 FreeBSD 上没有。

【讨论】:

【参考方案3】:

我遇到了同样的问题,我不得不将 openSSL 升级到 1.1+

【讨论】:

【参考方案4】:

就我而言,这是因为旧的 Apache/HTTPD。我用新的 libcurl 和 openssl 重建了 PHP——在命令行中一切似乎都很好,但是在 web-server-mode 中——用来获取旧版本的 OpenSSL。我花了几个小时跳舞——最后我也重新编译了 Apache——这帮助了我!因为 Apache 在启动 php 之前加载了旧的 libss.so。请注意这一点。

【讨论】:

以上是关于OpenSSL 标头版本!= 影响 APNS 的 HTTP/2 的 OpenSSL 库版本的主要内容,如果未能解决你的问题,请参考以下文章

天蓝色通知中心上的 iOS13 apns-push-type 标头

如何使用标准 C#.NET 发送带有“apns-expiration”标头的推送通知?

我应该如何配置我的标头以对 APNs 进行 HTTP/2 POST 以避免“收到重复的伪标头字段”错误?

[Azure通知中心上的iOS13 apns-push-type标头

测试不良版本的 openssl / php 安装

ssl漏洞是啥