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