微信公衆平台已經于2018年8月23日更換 api.weixin.qq.com 的HTTPS服務器證書(shū),少部分(fēn)服務器上可能沒有部署對應的根證書(shū),将導緻獲取token、群發消息等接口無法使用,請各位開(kāi)發者于2018年8月23日之前配合做以下(xià)檢查或變更。
第一(yī)步:驗證證書(shū)
經過測試,目前絕大(dà)部分(fēn)操作系統和執行環境中(zhōng)已經内置了該根證書(shū),開(kāi)發者服務器(非用戶浏覽器)不需要做任何變更。
微信公衆平台的服務器證書(shū)支持多域名,即API域名(api.weixin.qq.com)與API容災域名(api2.weixin.qq.com)使用同一(yī)張證書(shū),正常情況下(xià)請使用api.weixin.qq.com域名,新證書(shū)與舊(jiù)證書(shū)的證書(shū)鏈區别如下(xià):(左邊新,右邊舊(jiù))
可以通過以下(xià)方法驗證:
1)linux服務器
通過 curl -v "https://api2.weixin.qq.com/testcert?appid=xxxxxx"
自測,查看證書(shū)issuer是否爲CN=GeoTrust RSA CA 2018,OU=www.digicert.com,O=DigiCert Inc,C=US,如果issuer匹配,請求結果返回 “Certificate test passed!” 則表示證書(shū)不需要更新處理。如果issuer不匹配或是出現其他異常沒有返回 “Certificate test passed!” 則需要第二步進行修正。
2)windows服務器
可通過IE浏覽器訪問 https://api2.weixin.qq.com/testcert?appid=xxxxxx, 如果證書(shū)顯示正常,頁面返回 “Certificate test passed!”,則不需要更新根證書(shū)。
或者在控制台窗口運行certmgr.msc,在操作菜單欄中(zhōng)打開(kāi)查找證書(shū),在所有頒發給域中(zhōng)搜索包含Baltimore,如果顯示有頒發給BaltimoreCyberTrustRoot的證書(shū)則不需要更新證書(shū)。
如果出現異常請參考第二步的修正指引。
第二步:修正指引
如果上述檢查步驟自測通過,則下(xià)面安裝證書(shū)步驟可以跳過。
如需安裝證書(shū),請點擊下(xià)載,也可移步官網下(xià)載證書(shū):https://dl.cacerts.digicert.com/BaltimoreCyberTrustRoot.crt
部分(fēn)服務器操作系統證書(shū)安裝指引:
1)centos系統
wget https://dl.cacerts.digicert.com/BaltimoreCyberTrustRoot.crt
openssl x509 -inform der -in BaltimoreCyberTrustRoot.crt >> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
update-ca-trust
2)ubuntu系統
sudo cp BaltimoreCyberTrustRoot.crt /usr/local/share/ca-certificates/BaltimoreCyberTrustRoot.crt
sudo update-ca-certificates
3)windows系統
下(xià)載更證書(shū)文件後,直接打開(kāi)文件按照提示操作安裝即可。
其他環境請參考網絡。
注意:業務代碼中(zhōng)不要指定證書(shū)。當程序中(zhōng)不指定根證書(shū)時,會使用系統自帶的根證書(shū)。絕大(dà)部分(fēn)系統中(zhōng)已内置了api.weixin.qq.com的根證書(shū),所以删除掉指定根證書(shū)的代碼,不會影響到你的現有業務,後續兼容性也更好。
下(xià)一(yī)篇 2019年開(kāi)源數據庫報告發布:MySQL 仍衛冕!
上一(yī)篇: Windows 10有望年底前跻身全球第一(yī)大(dà)桌面系統