CentOS 6.8
nginx 1.6.0
php 7.0.10
最近開(kāi)發(fā)一個(gè)小程序,而小程序?qū)笈_(tái)接口服務(wù)器的要求是:
1、請(qǐng)求域名在request合法域名中
2、基于 https 協(xié)議
3、TLS 版本 1.2+
1、2 兩條都滿(mǎn)足了,但是第三條亟待解決,導(dǎo)致小程序調(diào)用接口時(shí)報(bào)錯(cuò):

2017年1月1日起,蘋(píng)果強(qiáng)制所有 app 滿(mǎn)足 HTTPS,即 iOS9 推出的 App Transport Security (ATS) 特性。
訪問(wèn) https://www.qcloud.com/product/ssl#userDefined10 ,
輸入域名,檢查您的 iOS app 是否滿(mǎn)足 ATS 特性:

報(bào)錯(cuò)了,提示不支持 TLS1.2。
1、openSSL 版本 1.0.1+
查看 openSSL 版本:
openssl version -a
2、nginx 版本為 0.7.65,0.8.19 及更高版本
查看 nginx 版本:
nginx -V
結(jié)果是,我的版本都符合要求。
本人申請(qǐng)的是騰訊云的安全證書(shū),官方有提供 nginx 如何配置的文檔:
https://www.qcloud.com/document/product/400/6973#1.nginx-.E8.AF.81.E4.B9.A6.E9.85.8D.E7.BD.AE
配置 nginx.conf 支持 TLS1.2 的方法如下(看 ssl_protocols 參數(shù)):
server {
listen 443;
server_name www.domain.com; #填寫(xiě)綁定證書(shū)的域名
ssl on;
ssl_certificate 1_www.domain.com_bundle.crt;
ssl_certificate_key 2_www.domain.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照這個(gè)協(xié)議配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照這個(gè)套件配置
ssl_prefer_server_ciphers on;
location / {
root html; #站點(diǎn)目錄
index index.html index.htm;
}
}
按照上文一切都做完之后,發(fā)現(xiàn)還是不行。
折騰好久之后。
發(fā)現(xiàn),原來(lái)是 nginx 之前有配另一個(gè) https 的 server,關(guān)于
ssl_protocols 的參數(shù)值為:
ssl_protocols SSLv2 SSLv3 TLSv1;
里面根本沒(méi)有包含 TLSv1.2!從而影響了我們這個(gè) server!
所以把改成:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
再測(cè)試: