微信公眾平臺將于2018年8月23日更換api.weixin.qq.com的HTTPS服務器證書,少部分服務器上可能沒有部署對應的根證書,將導致獲取token、群發(fā)消息等接口無法使用,因此,在這里,天津網(wǎng)站建設提醒各位開發(fā)者于2018年8月23日之前配合做以下檢查或變更。
⑴步:驗證證書
經(jīng)過測試,目前絕大部分操作系統(tǒng)和執(zhí)行環(huán)境中已經(jīng)內(nèi)置了該根證書,開發(fā)者服務器(非用戶瀏覽器)不需要做任何變更。
微信公眾平臺的服務器證書支持多域名,即API域名(api.weixin.qq.com)與API容災域名(api2.weixin.qq.com)使用同一張證書,正常情況下請使用api.weixin.qq.com域名,新證書與舊證書的證書鏈區(qū)別如下:(左邊新,右邊舊)。
可以通過以下方法驗證:
1)linux服務器
通過 curl -v "https://api2.weixin.qq.com/testcert?appid=xxxxxx"自測,查看證書issuer是否為CN=GeoTrust RSA CA 2018,OU=www.digicert.com,O=DigiCert Inc,C=US,如果issuer匹配,請求結(jié)果返回 “Certificate test passed!” 則表示證書不需要更新處理。如果issuer不匹配或是出現(xiàn)其他異常沒有返回 “Certificate test passed!” 則需要第二步進行修正。
2)windows服務器
可通過IE瀏覽器訪問 https://api2.weixin.qq.com/testcert?appid=xxxxxx, 如果證書顯示正常,頁面返回 “Certificate test passed!”,則不需要更新根證書。
或者在控制臺窗口運行certmgr.msc,在操作菜單欄中打開查找證書,在所有頒發(fā)給域中搜索包含Baltimore,如果顯示有頒發(fā)給BaltimoreCyberTrustRoot的證書則不需要更新證書。
如果出現(xiàn)異常請參考第二步的修正指引。
第二步:修正指引
如果上述檢查步驟自測通過,則下面安裝證書步驟可以跳過。
部分服務器操作系統(tǒng)證書安裝指引:
1)centos系統(tǒng)
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系統(tǒng)
sudo cp BaltimoreCyberTrustRoot.crt /usr/local/share/ca-certificates/BaltimoreCyberTrustRoot.crt
sudo update-ca-certificates
3)windows系統(tǒng)
下載更證書文件后,直接打開文件按照提示操作安裝即可。
其他環(huán)境請參考網(wǎng)絡。
小貼士:業(yè)務代碼中不要指定證書。當程序中不指定根證書時,會使用系統(tǒng)自帶的根證書。絕大部分系統(tǒng)中已內(nèi)置了api.weixin.qq.com的根證書,所以刪除掉指定根證書的代碼,不會影響到你的現(xiàn)有業(yè)務,后續(xù)兼容性也更好。