PayPal TLS1.2升級指引

1.背景

由於國際PCI標準更新,Paypal需所有對接商戶進行TLS1.2的升級,否則到2018年7月後商戶的Paypal支付服務將受阻

2.Paypal官方標準

https://www.paypal-notice.com/cn/

3.Paypal官方升級指導工具

https://github.com/paypal/TLS-update#php

4.踩坑之路

關於HTTPS升級這裡不多說,現在全球做在線支付如果誰家還沒升級使用https,那它離死也不遠了

4.1、相同的版本不同的aws服務器結果不一致

筆者在兩臺亞馬遜服務器上進行TLS check,結果如下:
正常的服務器:

PayPal TLS1.2升級指引

不正常的服務器:

PayPal TLS1.2升級指引

可以看到,php curl擴展庫信息什麼的全是一樣的,但確然有一臺服務器不正常

由於不正常的服務器買得比較早,14年採購的,正常的服務器16年採購的,出現這種異常,筆者只能把原因歸結為aws對比較新的服務器進行了底層庫升級

4.2、找到問題

但問題依舊需要解決,查找網上資料得知,tls1.2以上需要curl 7.34版本以上庫才能支持,因而主要問題就是需要升級curl庫

其實這個問題對應的Paypal官方指導工具的這句話:

PayPal TLS1.2升級指引

你需要升級你的php curl版本庫而不是系統curl庫

4.3、curl與libcurl的區別

兩者區別詳見:
https://yq.aliyun.com/wenji/115590

4.4、解決問題

通過上面的簡述,我們可以知道,php curl擴展實際對應的libcurl庫,但是網上實際是找不到單獨的libcurl庫包的,因為curl官方把libcurl庫包封裝在curl庫包裡

換而言之,升級php curl擴展實際上還是要分兩步

其一、安裝新版curl庫包

其二、編譯升級php curl

這裡主要是修改編譯時的--with-curl參數,這個參數需要接升級後的curl安裝路徑,形如 --with-curl=/usr/local/curl

4.5、升級php curl擴展的小插曲

網上有教程說可以不重新編譯php實現curl擴展的安裝,但這種情況有一個前提,就是之前沒有將php curl擴展靜態編譯進php

如果之前已經將php curl擴展靜態編譯進了php,那不好意思,老老實實進行整個php的重新編譯安裝吧,否則以不重新編譯的方式安裝php會報加載了兩個curl擴展的警告,而且它還只會讀到舊的擴展

tips:何謂php 擴展的靜態編譯,就是在最初安裝php時,把需要的擴展附加進./configure的編譯參數裡了

更多精彩內容,請關注求課吧公眾號 itqiuke


分享到:


相關文章: