蘋果ATS - 證書選擇及配置

天府雲創發表於2017-04-12

2017年1月1日開始,蘋果要求所有iOS應用必須使用ATS(App Transport Security),即APP內連線必須使用安全的HTTPS並且需要滿足ios9中的新特性。


1、證書頒發機構的要求

    推薦用Symantec/GeoTrust/Godaddy/GlobalSign/comodo品牌的OV及以上證書,個人使用者可簽發DV證書。而CFCA品牌只在最新的蘋果裝置上才支援,不推薦CFCA品牌。不推薦使用免費證書;

2、證書的雜湊演算法和祕鑰長度的要求

    證書的雜湊演算法:在上面推薦的證書品牌中是雜湊演算法都是SHA256或者更高強度的演算法;

    祕鑰長度: 如果自己建立CSR,請使用2048位或以上的RSA加密演算法;

3、傳輸協議的要求

    必須滿足 TLS1.2

4、web伺服器要求

 Apache(2.2.23+) / Nginx(1.0.12+) 依賴 OpenSSL 1.0.1 + 以支援 TLSv1.2.  

 Tomcat 7 + Jdk 7.0 + 支援 TLSv1.2

 IIS6(win2003)不支援,IIS7.5 預設未開啟 TLSv1.2 需修改登錄檔以開啟 TLSv1.2。

5、簽字演算法: 必須滿足如下演算法

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

蘋果ATS特性伺服器配置指南

以下舉例不同伺服器的ATS協議及加密套件如何配置(只列舉了與ATS有關的屬性,請不要完全複製以下配置

1.Nginx 證書配置

server {    
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;   
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    }

2.Apache 證書配置

<IfModule mod_ssl.c>
        <VirtualHost *:443>
        SSLProtocol TLSv1 TLSv1.1 TLSv1.2
        SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4        
        </VirtualHost>
</IfModule>

3.Tomcat 證書配置

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
    scheme="https" secure="true"
    ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"    
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"    
    SSLCipherSuite="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4" 
/>

4.IIS 證書配置

4.1 方法一

Windows 2008及更早的版本不支援TLS1_2協議 所以無法調整 2008R2 TLS1_2協議預設是關閉的 需要啟用此協議達到ATS要求

以2008 R2為例,匯入證書後沒有對協議及套件做任何的調整。
證書匯入後檢測到套件是支援ATS需求的,但協議TLS1_2沒有被啟用,ATS需要TLS1_2的支援。可使用的ssltools工具(亞洲誠信提供,點選下載)啟用TLS1_2協議

blob.png

勾選三個TLS協議並重啟系統即可。
如果檢查到PFS不支援,在加密套件中選中帶ECDHE和DHE就可以了。

4.2 方法二

開始——執行 輸入regedit
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols右鍵->新建->項->新建TLS 1.1,TLS 1.2
TLS 1.1和TLS 1.2 右鍵->新建->項->新建Server, Client
在新建的Server和Client中都新建如下的項(DWORD 32位值), 總共4個
DisabledByDefault [Value = 0]
Enabled [Value = 1]

完成後重啟系統

加密套件調整
對於前向保密加密套件不支援的話可通過組策略編輯器進行調整。
開始選單——執行、輸入gpedit.msc 進行加密套件調整 在此操作之前需要先開啟TLS1_2協議

3
雙擊SSL密碼套件順序

4

把支援的ECDHE加密套件加入SSL密碼套件中 以逗號(,)分隔
開啟一個空白寫字板文件。
複製下圖中右側可用套件的列表並將其貼上到該文件中。
按正確順序排列套件;刪除不想使用的所有套件。
在每個套件名稱的末尾鍵入一個逗號(最後一個套件名稱除外)。確保沒有嵌入空格。
刪除所有換行符,以便密碼套件名稱位於單獨的一個長行上。
將密碼套件行復制到剪貼簿,然後將其貼上到編輯框中。最大長度為 1023 個字元。

5

可將以下套件加入密碼套件中
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

附:
推薦套件組合:
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384


相關文章