簡體   English   中英

如何在groovy應用程序中升級http協議TLS1.2

[英]How to upgrade http protocol TLS1.2 in groovy application

我在grails 2.5.0應用程序上有一個groovy,我想將TLS1.2設置為使用舊的TLS版本。 下面的代碼我已經在bootstrap.groovy中設置,但似乎它不起作用,任何幫助贊賞。

 def init = { servletContext ->

    System.setProperty("com.ibm.jsse2.overrideDefaultProtocol","TLSv12")
    System.setProperty("https.protocols","TLSv1.2")
    println "protocol in bootstrap = "+System.getProperty("https.protocols")
 }

但是無法在println語句中看到任何內容。

首先,並非所有jvm版本都支持TLS 1.2版。 如果你使用的是oracle jvm,它需要是java 1.6.0.121或更高版本,如果在java 1.6,java 1.7.95或更高版本,如果在java 1.7 更高版本的jvm(即java 8,java 9等) 。

假設已經處理好了,您需要設置系統屬性:

System.properties['jdk.tls.client.protocols'] = 'TLSv1.2'

通過閱讀文檔似乎https.protocols設置也應該工作,但我知道使用jdk.tls.client.protocols配置大量服務器jvms它可以工作。 請注意,這是為了使服務器jvms在向Internet發出請求時使用TLSv1.2,即當它們充當客戶端時。 所以我們在這里討論配置請求的客戶端。 我假設服務器端需要以不同方式配置。

此外,在您的代碼中,聲明:

println "protocol in bootstrap = "+System.getProperty("https.protocols")

可能被解釋為

println("protocol in bootstrap = ")+System.getProperty("https.protocols")

這意味着:

null+System.getProperty("https.protocols")

因為println返回null。 這將protocol in bootstrap =打印protocol in bootstrap =但不是系統屬性。

嘗試明確的parens:

println("protocol in bootstrap = "+System.getProperty("https.protocols"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM