導航:首頁 > 編程語言 > javahttps雙向認證

javahttps雙向認證

發布時間:2023-05-26 05:35:49

java後台如何給前端寫使用介面

java後台如何給前端寫使用介面,框架一開始就得考慮好的,很多都使用mvc架構往往用回戶登錄時,用戶密碼符合,會允答許其訪問,保存登錄信息,下次就不需要再次登錄了,直到保存的信息過期或無效,很多也都是使用組件來實現的,功能多又安全,需要單點登錄的可以再加上cas。

Ⅱ HTTPS基礎

本章是HTTPS那些事兒的第一篇文章,其他相關文章請參見: 前言
本篇主要講解Https的基礎知識,涉及到以下幾點:

前面說到SSL是為了解決HTTP明文傳輸帶來的問題,所以SSL採用的是加密傳輸。發送方通過密鑰加密明文,接收方通過密鑰解密成明文。該密鑰是傳輸成功的關鍵,那麼這個密鑰是怎麼來的呢?這就涉及到我們所說的HTTPS握手了,握手結束後發送方和接收方就會得到密鑰了。那麼HTTPS的握手過程是怎麼樣的呢?

1). Client Hello
Client發起連接請求,請求參數包括客戶端支持的TLS版本列表、加密演算法列表、壓縮演算法列表、隨機數 random_C 和一些擴展信息
2). Server Hello
Server接收到手姿Client的Hello請求後,根據Server端的配置以及Client Hello發送的參數,篩選出與Client最兼容的TLS版本、加密演算法版本、壓縮演算法版本以及隨機數 random_S
3). Server證書
向client端發送Server的CA證書
4). Server Hello Finish
通知Client端Server Hello信息發送結束
5). 校驗Server證書
Client接收到Server證書後,通過本地的證書信任信息進行校驗,確認Server的CA證書是李手否由可信機構頒發。除此之外,還會校驗證書是否還在有效期、域名是否與當前訪問域名匹配等
6). Client Key Exchange
Server的CA證書校驗通過後,Client生成隨機數 Pre_Master ,並採用Server證書中的公鑰加密發送給Server端。此刻,客戶端已經獲取到全部的生成密鑰需要的信息,則通過協商的演算法生成通信密鑰enc_key:

7). Change Cipher Spec
密鑰enc_key生成後,通知Server後續的通信Client端都使用enc_key進行加密通信
8). Finish Handshake
結合之前所有通信參數的 hash 值與其它相關信息生成一段數據,使用協商密鑰 enc_key 與協商演算法將其加密,然後發送給伺服器用於驗證服務端其生成的enc_key是否正確
9). Change Cipher Spec
Server接收到Client Handshake Finish消息後,生成自己的enc_key,並用enc_key驗證Client Handshake Finish信息是否正確。如果正確,則通知Client後續通信Server端都使用協商密鑰enc_key進行加密通信
10). Finish Handshake
Server也結合所有當前的通信參數信息生成一段數據並採用協商密鑰 enc_key與協商演算法加密,並發送到客戶端
最後,Client端校驗Server Finish Handshake信息,如果校驗通過,則會將enc_key作為後續加密通信的密鑰。

以上所描述的其實就是我們說所的單向認證過程,如果是雙向認證,只是在單向認證的過程中增加Server端對Client端的證書認證過程而已。

HTTPS握手過程中,在第3步Server端會發送其CA證書到Client端。這里所說的CA證書的作用是用來證明當前訪問的伺服器是Client想要畢擾絕訪問的伺服器,而不是他人偽裝成的假伺服器。那麼這個CA證書是什麼呢?
舉個生活中的例子:
在你去銀行辦卡的時候,你要怎麼證明你是你呢?一般銀行會要求你出示身份證,然後驗證身份證是否可信,同時比對上面的照片是不是你。這里所說的身份證就是證明你是你的證據,與我們所說的CA證書作用相同。身份證有一個最大的特性:由國家所信任的公安部門頒發的,銀行可以通過公安部門來校驗你的身份證是否可信。
所以,為了使CA證書也被大家都信任的話,也引入了類似的機構,該機構稱為CA(Certification Authority的簡稱),該結構頒發的證書稱為CA證書。HTTPS握手過程中,Client端會通過本地的證書信任信息校驗Server證書,這里所說的證書信任信息其實就是CA機構相關的信息。

Server端想要獲取到CA證書,必須向CA機構提出申請,當CA機構審核通過後,才會為Server頒發證書。那麼這個過程涉及到什麼信息呢?
首先CA機構會有自己的公私鑰ca.pub和ca.pri,Server也需要有自己的公私鑰server.pub和server.pri。
在Server提出申請時,需要提供server.pub和伺服器信息——明文信息(包括證書申請信息、證書頒發機構、證書過期時間等)。CA接收到請求後,通過各種手段確認Server信息的合法性,通過後會將明文做hash,然後再使用ca.pri對hash進行簽名,最後將簽名和明文信息明文放到一起,就是我們的CA證書。證書信息類似於下圖:

本篇對HTTP、SSL/TSL、HTTPS,以及HTTPS中設計的HTTPS握手和CA證書做了詳細描述,解釋了HTTPS相關的基本概念。本系列文章後續還會講述java中的HTTPS那些事兒以及Spring的RestTemplate與HTTPS,如果有興趣請參見後續文章。可通過 此處 尋找到本系列文章的目錄。

Ⅲ 關於java的SSL https協議

1.SSL單向和雙向的意思就是字面的意思:單向就是用戶到伺服器之間只是單方面的ssl,而雙向就是雙方都可以使用;這個具體概念你可以去網上多了解了解,一般登錄用單向的就可以了,除非是PKI方面的會用到雙向認證;
2.實現方面,不算簡單也不算復雜,現在給你說肯定說不清楚,但是這個方面的資料還是很多的,比如:你只需要在tomcat中配置開啟ssl應用,即埠8443(但是不止開埠這么簡單,調通就可以了),實現的時候某幾個jsp頁面地址是8443下的就可以了.當然需要Filter之類的來控制.
....... 好辛苦

Ⅳ https怎麼配置

您好!州碼
一、指跡液首先在獨立的伺服器(雲服唯物務器、VPS),搭建好普通的網站,並且這個網站可以訪問。
二、登陸淘寶搜索關鍵字:Gworg 獲取SSL證書。
三、拿到SSL證書安裝到伺服器就實現HTTPS網站了。
註:虛擬主機通常都不支持。

Ⅳ java httpClients使用代理伺服器訪問第三方時需要雙向認證,但是認證不過,不使用代理就可以,請大神指點

那就不使用代理唄,不是更簡單

Ⅵ java 建立雙向認證 https連接

絕對好用的。直用的這個,GOOD LUCK FOR YOU

public static String httpRequest(String requestUrl, String requestMethod, String outputStr) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
try {
// 創建SSLContext對象,並使用我們指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 從上述SSLContext對象中得到SSLSocketFactory對象
SSLSocketFactory ssf = sslContext.getSocketFactory();

URL url = new URL(requestUrl);
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);

httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 設置請求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);

if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();

// 當有數據需要提交時
if (null != outputStr) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意編碼格式,防止中文亂碼
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}

// 將返回的輸入流轉換成字元串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 釋放資源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
System.out.println("返回的數據:"+buffer.toString());
// jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
log.error("Weixin server connection timed out.");
} catch (Exception e) {
log.error("https request error:{}", e);
}
return buffer.toString();
}

Ⅶ java怎麼模擬https雙向認證但客戶端只有ukey的請求

對於不是優盤的ukey,一般都有驅動程序的。用正確的api就可以不導入直接使用。

Ⅷ java https 400 No required SSL certificate was sent

使用4層協議轉發

Ⅸ java怎麼去調用tomcat6配置使用ssl雙向認證

客戶端的JAVA導入ROOT證書、客戶端證書,,,,然後指定使用SSL,就可以

閱讀全文

與javahttps雙向認證相關的資料

熱點內容
學韓語用什麼app 瀏覽:478
110固態硬碟分區win10 瀏覽:317
怎麼恢復系統文件 瀏覽:358
數據線轉換器多少錢 瀏覽:274
美國隊長qq皮膚多少錢 瀏覽:630
win8word文檔在哪 瀏覽:180
甘肅省人事局文件在哪裡 瀏覽:689
spss安裝輸入代碼 瀏覽:546
網路語言知乎 瀏覽:596
iphoneicloud無法顯示 瀏覽:112
ict程序包 瀏覽:729
java有哪些條件語句 瀏覽:345
冒險島120級去哪裡升級 瀏覽:511
手機輸入法聲音文件 瀏覽:876
下劃線哪個app 瀏覽:48
win10h1z1切換桌面 瀏覽:911
js定義集合數組 瀏覽:153
win10企業關閉自動更新 瀏覽:920
js擴展對象 瀏覽:370
受控文件的章印內容怎麼寫 瀏覽:463

友情鏈接