https站點強制通訊協議TLSv1.2
現在網路安全原來越重要,好多公司網站需要ssl支援,也就是要求客戶通過https訪問公司站點,由於TLSv1.1容易被黑客攻擊,於是很多企業要求站點只提供TLSv1.2協議支援。
對Java 程式,TLSv1.2的實現中, oracle 從JDK1.7 update96以後的版本才開始支援,IBM JDK 採用的是類似的方案。只有從JDK1.8開始才是預設支援的。
https://bugs.openjdk.java.net/browse/JDK-7093640
https://www.java.com/en/configure_crypto.html#enableTLSv1_2
https://wiki.openssl.org/index.php/Manual:Ciphers(1) 參見TLSv1.2支援的cipher list.
TLSv1.2協議支援具體要分三部分內容。
<一>伺服器對TLSv1.2的支援。
具體要看伺服器採用的是那種伺服器,這裡主要講Apache web server 和Tomcat 為基礎的web 伺服器。
Apache web server:
更新檔案 httpd-ssl.conf於如下路徑:WebServer/conf/extra/
做如下更改:
#Limit Protocol to TLSv1.2
SSLProtocol +TLSv1.2
#Update cipher suites to remediate variousencryption related vulnerabilities
SSLHonorCipherOrder On
SSLCipherSuiteECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256
Tomcat:
更新檔案wrapper.conf 檔案於如下路徑
Tomcat/conf/ (Windows) or the setenv.shscript file (UNIX) with the following modifications:
· 新增引數 -Djdk.tls.client.protocols=TLSv1.2 在 Java Virtual Machine (JVM) arguments.
針對AIX 環境引數變為-Dcom.ibm.jsse2.overrideDefaultProtocol="TLSv12".
· 如果Tomcat 配置了TLS , 更新檔案 server.xml 在如下路徑
Tomcat/conf/, 如下. 在<Connector> 定義中, 更改 ciphers 和 sslProtocols 引數如下:
ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA" sslProtocols="TLSv1.2"
<二>客戶端設定對TLSv1.2的支援
現代瀏覽器對TLS 1.2 預設支援的版本如下:
Firefox: Next 6 months (either version 27 or 28)
IE version 11
Google Chrome 31
Opera 18 on Windows
Safari 7.0 on Mac
①.開啟Java Control Panel,檢視Java支援的TLS版本
②.高階。拉到最下面。
<三>客戶端預設通過TLSv1.2訪問設定。
- import org.apache.http.impl.client.DefaultHttpClient;
- publicclass SSLClient extends DefaultHttpClient {
- public SSLClient() throws Exception {
- super();
- SSLContext ctx = SSLContext.getInstance("TLSv1.2");
- X509TrustManager tm = new X509TrustManager() {
- @Override
- publicvoid checkClientTrusted(X509Certi<a target=_blank target="_blank" href="http://superuser.com/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-java-7">http://superuser.com/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-java-7</a>ficate[] chain, String authType) throws CertificateException {
- }
- @Override
- publicvoid checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
- }
- @Override
- public X509Certificate[] getAcceptedIssuers() {
- returnnull;
- }
- };
- ctx.init(null, new TrustManager[] { tm }, null);
- org.apache.http.conn.ssl.SSLSocketFactory ssf = new org.apache.http.conn.ssl.SSLSocketFactory(ctx,
- org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
- ClientConnectionManager ccm = this.getConnectionManager();
- SchemeRegistry sr = ccm.getSchemeRegistry();
- sr.register(new Scheme("https", 443, ssf));
- }
- }
為了測試需要你可以通過如下程式碼來測試你的客戶端環境,看你的客戶程式可以採用的協議:
- publicstaticvoid main(String[] args) throws Exception {
- SSLContext context = SSLContext.getInstance("TLS");
- context.init(null, null, null);
- SSLSocketFactory factory = (SSLSocketFactory) context.getSocketFactory();
- SSLSocket socket = (SSLSocket) factory.createSocket();
- String[] protocols = socket.getSupportedProtocols();
- System.out.println("Supported Protocols: " + protocols.length);
- for (int i = 0; i < protocols.length; i++) {
- System.out.println(" " + protocols[i]);
- }
- protocols = socket.getEnabledProtocols();
- System.out.println("Enabled Protocols: " + protocols.length);
- for (int i = 0; i < protocols.length; i++) {
- System.out.println(" " + protocols[i]);
- }
- }
相關推薦
https站點強制通訊協議TLSv1.2
現在網路安全原來越重要,好多公司網站需要ssl支援,也就是要求客戶通過https訪問公司站點,由於TLSv1.1容易被黑客攻擊,於是很多企業要求站點只提供TLSv1.2協議支援。 對Java 程式,TLSv1.2的實現中, oracle 從JDK1.7 update96以後
專案-智慧快遞櫃(通訊協議篇2-SOCKET)
專案-智慧快遞櫃(終端篇1-業務流程)https://blog.csdn.net/arno1988/article/details/84983815 專案-智慧快遞櫃(終端篇2-管理後臺)https://blog.csdn.net/arno1988/article/details/8498481
1.2分布式-網絡通訊協議
未收到 正常 緩沖區 使用 什麽是 fab gmp 大小 報文 網絡協議: TCP/IP 和UDP/IP TCP/IP TCP/IP(Transmission Control Protocol/Internet Protocol)是一種可靠的網絡數據傳輸控制協議。定義了主機
[Golang] 從零開始寫Socket Server(2): 自定義通訊協議
在上一章我們做出來一個最基礎的demo後,已經可以初步實現Server和Client之間的資訊交流了~ 這一章我會介紹一下怎麼在Server和Client之間實現一個簡單的通訊協議,從而增強整個資訊交流過程的穩定性。  
Atitit rpc之道 attilax著 艾龍 著 1. 遠端過程呼叫協議 2 2. RPC需要解決的問題: 組成部分 3 2.1. 通訊問題 : 3 2.2. 序列化 與 反序列化 : 3 2
Atitit rpc之道 attilax著 艾龍 著 3. 歷史 4 遠端過程呼叫協議 編輯 同義詞 RPC一般指遠端
易學筆記-系統分析師考試-第4章 資料通訊和計算機網路/4.2 網路體系結構與協議/4.2.2 常見的網路協議
易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/
C#輕量級通通訊元件StriveEngine —— C/S通訊開源demo(2) —— 使用二進位制協議 (附原始碼)
前段時間,有幾個研究的朋友對我說,ESFramework有點龐大,對於他們目前的專案來說有點“殺雞用牛刀”的意思,因為他們的專案不需要檔案傳送、不需要P2P、不存在好友關係、也不存在組廣播、不需要伺服器均衡、不需要跨伺服器通訊、甚至都不需要使用UserID,只要客戶端能與服務端進行簡單的穩定高效的通訊就可以了
Spring4.3.3 WebSocket-STOMP協議整合 (2.1)-WebSocket-stomp子協議通訊小栗子
上一篇中說到:stomp - jsp之間的通訊,是通過stomp,socket.js/stomp.js實現的通訊。如果覺得寫jsp或者js麻煩,或者不怎麼會js,不是太懂,可以用webSocketStomp的client來測試。下面
基於 Netty 的可插拔業務通訊協議的實現「2」特定業務訊息物件的設計
本文為該系列的第二篇文章,設計需求為:服務端程式和眾多客戶端程式通過 TCP 協議進行通訊,通訊雙方需通訊的訊息種類眾多。上一篇文章詳細描述了該通訊協議的二進位制資料幀格式以及基本 Java 訊息類,假設通訊雙方「服務端、客戶端」均由 Netty 框架構建而成,
andeoid4.x強制使用TLSv1.2
最近做安全性比較高的專案,上級最近出臺新規要求必須Https+TLSv1.2, 由於android20才開始預設使用TLS1.2,4..0-5.0一下預設的都是TLS1.0, 遇到一些坑費了點時間,網上查了好多資料,沒有比較完整清晰的資料, 所以解決後記錄一下,方便自己方便
gh0st通訊協議解析(2)
Gh0st通訊協議解析(2) 從被控端主動去連線主控端開始談起。世間萬事萬物有始有終,宇宙環宇的動力起點就是上帝的那一推之力。當然,主控端與被控端的互動總是從被控端主動連線到主控端開始的,讓我們從發起連線這個引爆點談起…… **********************
TCP/IP協議(2):網絡設備
數據包 服務器 網絡設備 風暴 二層交換機 不同的 中繼器 tcp/ip 解決 1、中繼器(Repeater) 中繼器工作在OSI的一層,我們知道,超5類線的傳輸距離最大為100米,超過這個距離信號就會衰減,中繼器就是為了防止信號變差,將網絡信號進行再生和重定時。 2、
IIS開多個HTTPS站點
ets ron www orm pro 默認 system32 app 站點 默認情況一個服務器的IIS只能綁定一個HTTPS也就是443端口 要實現多個站點對應HTTPS只能更改IIS配置 地址:C:\Windows\system32\inetsrv\config\a
使用BeautifulSoup爬取“0daydown”站點的信息(2)——字符編碼問題解決
snippet sni 結束 編碼錯誤 charset utf 教程 作者 request 上篇中的程序實現了抓取0daydown最新的10頁信息。輸出是直接輸出到控制臺裏面。再次改進代碼時我準備把它們寫入到一個TXT文檔中。這是問題就出來了。 最初我的代碼例如以
由於各個廠家的通訊協議都不兼容有些還必須獲得
tag 郵件傳輸 源地址 能夠 彩頁 它的 如果 通過 獲得 有時又稱為"數據鏈路測過"或"網絡接口層",通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。 網絡層 有時又稱為"網絡互聯層",處理分組在網
Kafka的通訊協議
單位 編碼 ace 處理 lap 部分 nap spa head Kafka的Producer、Broker和Consumer之間采用的是一套自行設計的基於TCP層的協議。Kafka的這套協議完全是為了Kafka自身的業務需求而定制的,而非要實現一套類似於Protocol
C#高性能大容量SOCKET並發(八):通訊協議
pad 英文 透明 優勢 sock ase sha dev lac 協議種類 開發Socket程序有兩種協議類型,一種是用文本描述的,類似HTTP協議,定義字符集,好處是兼容性和調試方便,缺點是解析文本會損耗一些性能;一種是用Code加結構體,定義字節順序,好處是性能高,
MQTT是IBM開發的一個即時通訊協議,構建於TCP/IP協議上,是物聯網IoT的訂閱協議,借助消息推送功能,可以更好地實現遠程控制
集合 cap 消息處理 簡易 遠程控制 mes ogr 設計思想 成本 最近一直做物聯網方面的開發,以下內容關於使用MQTT過程中遇到問題的記錄以及需要掌握的機制原理,主要講解理論。 背景 MQTT是IBM開發的一個即時通訊協議。MQTT構建於TCP/IP協議上
用curl訪問HTTPS站點並登錄(對HTTP返回的結果特別清楚)
type .com nss int lai on() tftp cap 參數 開發網站,少不了測試。現在的網站為了加強安全性,都啟用了HTTPS協議。所謂HTTPS,也就是HTTP文本在SSL協議中傳輸。用curl命令行來測試HTTPS站點是個很有用的功能,寫點腳本,就可以
專利:結構化大數據通信協議(2)
結構化大數據通信協議說明2:數據的唯一性是實現“數據全球通”的基礎在班、組這樣的小環境中可以用每個人的姓名而區分出每一個人,然而在全國範圍內,由於人數太多,重名的很多,因此僅靠姓名就不能準確無誤地識別出每一個人。大數據時代以前的關系數據庫中的數據只是應用於某個機構內部,因此各個數據就容易識別,然而如果把關系數