[英]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.