2013-01-07 58 views
0

我正在使用SSL連接,並且對於某些用途,我需要從Java庫中引發警報類型及其嚴重性。如何在SSLHandshake中處理警告和致命警報

sslException.getAlertLevel() or sslException.getAlertSeverity() 

一樣,如果嚴重的水平FATAL我需要採取一些措施就可以了, 但我不能從那裏我能得到這個信息找到。

編輯:

有在RFC的TLS定義了兩個警戒級別,他們是警告水平和致命水平,我需要找出哪個級別是。

此外,如果所有的都是致命的水平,我還需要找出致命警報的類型。 任何幫助,將不勝感激。

也許這個問題沒有被問及或形成正確,但如果在握手過程中有一些警告提示呢?

java.dzone.com/articles/how-analyze-java-ssl-errors此鏈接顯示在證書過期部分,如果證書過期仍然在這種情況下java拋出SSL異常,但它是根據RFC的警告。

+0

@EJP我改變了問題的標題,使我的疑問更清晰。 –

+0

http://java.dzone.com/articles/how-analyze-java-ssl-errors此鏈接顯示在**證書到期**部分中,如果證書過期仍然在這種情況下java拋出SSL異常,但它是根據RFC的警告。 –

+0

'CertificateException's(已過期,尚未生效,...)不是'SSLException's。你所指的文章是關於一個'SSLPeerUnverifiedException',它不是一個證書異常,當密碼套件需要驗證時,這是致命的。 – Bruno

回答

3

所有 SSLExceptions是致命除了SSLPeerUnverifiedException,因爲都是SocketExceptions除了SocketTimeoutException,和所有其他的IOExceptions。

1.`SSLPeerUnverifiedException`在您是服務器並請求但不需要客戶端證書的情況下是非致命的。
+0

請參閱我編輯的答案,以及客戶發送的證書被撤銷並且都是警告級別警報並且不應將其視爲致命錯誤的情況 –

+0

@NarendraPathai編輯中的信息雖然正確,但不會改變我的答案絲毫。您似乎認爲存在以SSLException身份引發的警告警報。沒有。 Downvoter請注意。 – EJP

+0

這也是我在OTN上問過這個問題的人:)我明白你在說什麼。但是客戶證書過期的情況如何呢?在這種情況下,如果沒有拋出異常,有沒有辦法在連接正在協商時找出這些信息。因爲在這種情況下,某些服務器可能會將其視爲致命並關閉連接。 –