视频一区二区三区自拍_千金肉奴隷1985未删减版在线观看_国产成人黄色视频在线播放_少女免费播放片高清在线观看_国产精品v欧美精品v

證書相關(guān)問題

更新時間:2023.04.28

我們在【商戶平臺】->【自助服務(wù)】中設(shè)立了API證書及密鑰 (opens new window) 專區(qū),包括了商戶證書如何升級,申請,下載等問題的解答。下面是商戶技術(shù)人員可能關(guān)心的一些問題。

# 什么是私鑰?什么是證書?

數(shù)字簽名通常定義了兩種運(yùn)算: 簽名和驗簽。發(fā)送者用自己的私鑰對消息的哈希值進(jìn)行簽名,接收者用對方的公鑰進(jìn)行驗簽。因此,在使用數(shù)字簽名時,需要通信的雙方都要事先生成公鑰、私鑰,并且完成雙方的公鑰交換。其中,私鑰是只能由擁有者使用的不公開密鑰,公鑰是可以公開的密鑰。

由于公鑰本身并不含有擁有者的身份信息,使用時無法確認(rèn)它是真實有效的。所以需要證書認(rèn)證機(jī)構(gòu)(簡稱 CA)在核實公鑰擁有者的信息后,將公鑰擁有者的身份信息(如商戶號、公司名稱等),公鑰、簽發(fā)者信息、有效期以及擴(kuò)展信息等進(jìn)行簽名,制作成“證書”。

# 如何獲取API證書?

請參考API證書?如何獲取API證書? (opens new window)

# 什么是商戶API證書?什么是微信支付平臺證書?

商戶在調(diào)用 API 時用自身的私鑰簽名,微信支付使用商戶API證書中的公鑰來驗簽。

微信支付在響應(yīng)的報文中使用自身的私鑰簽名,商戶使用微信支付平臺證書中的公鑰來驗簽。

# 什么是證書序列號

每個證書都有一個由CA頒發(fā)的唯一編號,即證書序列號。

# 如何查看商戶API證書序列號?

登錄商戶平臺【API安全】->【API證書】->【查看證書】,可查看商戶API證書序列號。

商戶API證書和微信支付平臺證書均可以使用第三方的證書解析工具 (opens new window),查看證書內(nèi)容。或者使用openssl命令行工具查看證書序列號。

1$ openssl x509 -in 1900009191_20180326_cert.pem -noout -serial
2serial=1DDE55AD98ED71D6EDD4A4A16996DE7B47773A8C

# 如何在程序中加載證書

推薦使用微信支付提供的SDK。你也可以查看下列編程語言的示例代碼。

示例代碼

# 為什么微信支付平臺證書下載接口返回的證書需要加密?

主要是為了防御“中間人攻擊”。

由于驗證應(yīng)答報文的簽名和加密敏感信息時,必須使用到微信支付平臺證書。微信支付平臺證書是商戶認(rèn)證微信支付身份時最關(guān)鍵的要素。因此,要通過簽名和加密等多重機(jī)制來保障商戶獲取到的微信支付平臺證書沒有被“中間人”篡改。

商戶在調(diào)用下載接口獲取微信支付平臺證書時,應(yīng)進(jìn)行以下四步操作,以保證證書的真實性:

  • 使用與平臺共享的對稱密鑰,解密報文中的證書(必須)
  • 通過解密得到的證書,來驗證報文的簽名(必須)
  • 使用證書查看工具,核對證書的頒發(fā)者為Tenpay.com Root CA。詳見如何區(qū)分API證書的類型? (opens new window)(強(qiáng)烈推薦)
  • 通過證書信任鏈驗證微信支付平臺證書(強(qiáng)烈推薦)

# 如何通過證書信任鏈驗證平臺證書?

下面介紹如何使用openssl工具,通過證書信任鏈驗證微信支付平臺證書。

首先,從微信支付商戶平臺下載微信支付平臺證書信任鏈 CertTrustChain.p7b (opens new window) ,并將它轉(zhuǎn)換為pem證書格式。

1openssl pkcs7 -print_certs -in CertTrustChain.p7b -inform der -out CertTrustChain.pem

然后,-CAfile file指定受信任的證書,驗證下載的微信支付平臺證書

1openssl verify -verbose -CAfile ./CertTrustChain.pem ./WeChatPayPlatform.pem

# 為什么報錯“HTTP header缺少微信支付平臺證書序列號(Wechatpay-Serial)”?

商戶上送敏感信息時使用了微信支付平臺公鑰加密。為了能使用正確的密鑰解密,微信支付要求商戶在請求的HTTP頭部中包括證書序列號,以聲明加密所用的密鑰對和微信支付平臺證書。詳見這里的說明。