Monthly Archives: 九月 2016

Paypal 2016-2017年商家安全指南(苦逼升级之路)

    2016年春,收到paypal要求升级的通知,2016年秋,猝(完成)

    根据https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1913&viewlocale=zh_CN#SSL所说

    最麻烦的一条就是TLS 1.2,通常服务器操作系统版本不低的话很好解决,假如你跟我一样,很不幸的系统是使用Centos5的话,你只能重装升级的,不骗你。我已经试过升级到openssl最新,使用各种 ssl_protocols和ssl_ciphers还是不行,然后咨询centos官方论坛和Paypal官方,就明确告诉你Centos5不支持TLS1.2!!!!!Centos5不支持TLS1.2!!!!!!!!!!!!!

  1.TLS1.2完成和测试

  我服务器使用的lnmp,首先要看下你服务的openssl版本支持TLS1.2不,”OpenSSL 1.0.1 is the first release to support TLS 1.2,“,支持后在nginx配置ssl_protocols TLSv1.2 TLSv1.1 TLSv1就可以,然后可以使用一下脚本测试

  https://github.com/br-paypaldev/code-sample-pagamentos-recorrentes/blob/master/setExpressCheckout.php  配置好sandbox账号测试能正常转跳到https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=*** 页面。说明测试通过

    同时打开网站可以看到

    


 2.SSL证书升级,这个主要是要求你证书支付G5根证书和SHA256

    G5根证书添加:在nginx的ssl_certificate 对应的CRT中看下是否有G5根证书的添加,没有的话,手动写进入就好,G5根证书的下载  https://knowledge.symantec.com/support/mpki-for-ssl-support/index?page=content&actp=CROSSLINK&id=SO5624


测试的话,可以使用

<?php
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, “https://tlstest.paypal.com/”); 

//对应服务器SSL所带的crt
curl_setopt($ch, CURLOPT_CAINFO,’/usr/local/nginx/conf/ssl/***.crt’);

var_dump(curl_exec($ch));
if ($err = curl_error($ch)) {
var_dump($err);
echo “DEBUG INFORMATION:\n###########”;
echo “CURL VERSION”;
echo json_encode(curl_version(), JSON_PRETTY_PRINT);
}
测试通过的话是,显示paypal什么什么OK


   

参照文档
https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ1766&actp=LIST_POPULAR&rp=home&widgetview=true&locale=zh_CN