如果這個問題已經得到解決,我們深表歉意。我發現了許多類似的相關問題:
https://superuser.com/questions/1649382/upgrade-from-openjdk-11-0-7-to-11-0-11-causes-sslhandshakeexception-no-appropri
但沒有人回答我的問題。它們似乎都與現在應該在我的 Java 11 版本中修復的問題或與我未使用的 TLSv1.0/v1.1 相關的問題有關。
我沒有將這個問題標記為與 Grails 有關,因為我不認為 Grails 框架是這里的問題。
無論如何,我繼承了一個舊的 Grails 2 應用程式,我目前正在升級到 Grails 5。我目前在測驗服務器上同時部署并部署在 Tomcat 9 上。Grails 2 版本是使用 Oracle JDK 1.8.0.221 構建的以及使用 Termurin JDK 11.0.13 構建的 Grails 5 應用程式。
為了讓新的 Grails 5 應用程式在 Tomcat 9 上運行,我需要通過一個檔案將 Tomcat 9 的 JAVA_HOME 設定為 Java 11:
tomcat/bin/setenv.sh
這些應用程式通過 SendGrid 向用戶發送電子郵件通知。
但是,當我強制 Tomcat 使用 Java 11 時,由于以下原因,舊 Grails 2 應用程式中通過 SendGrid 發送的電子郵件失敗:
SSLHandshakeException:
No appropriate protocol (protocol is disabled or cipher suite is inappropriate)
我嘗試使用 Grails 2 應用程式強制執行的 TLS 版本和密碼套件,因為它們在啟動期間設定如下:
System.setProperty("https.protocols","TLSv1.2")
System.properties['jdk.tls.client.protocols'] = 'TLSv1.2'
System.properties['https.cipherSuites'] = 'TLS_DHE_RSA_WITH_AES_256_GCM_SHA384'
但是當 Tomcat 被設定為使用 JDK11 時,沒有運氣將這些電子郵件發送到在舊的 Grails 2 應用程式中作業的 SendGrid。我認為 TLSv1.2 不是問題,因為它仍應得到廣泛支持,但我無法通過更改密碼套件或完全禁用這些指令來解決這個問題。
這個問題似乎只與強制 Tomcat 9 使用 JDK 11 有關,這是我升級 Grails 5 所需要的。
在 Grails 5 版本準備好生產之前,我需要支持舊的 Grails 2 應用程式一段時間,并且我不想僅僅為了這個 SSL 問題而使用兩個不同的 Java 版本運行兩個單獨的 Tomcat 實體。
這是 Java 11 和/或 Tomcat 9 的已知問題嗎?如果是,是否有解決方法?這可能與我的 Java 8 JDK 是 Oracle 發行版而我的 Java 11 是 OpenJDK/Temurin 這一事實有關嗎?
uj5u.com熱心網友回復:
根據dave_thompson_085對我最初問題的回復,我們有一個(某種)解決方案。
Grails Mail 插件建立在 Spring Mail 之上,而 Spring Mail 又建立在 JavaMail 之上,不幸的是,Grails 2 可用的最新插件版本是 1.0.7,它非常舊并且仍然使用卡在 TLS1 上的 JavaMail 版本。 0/1.1。
在我的 Grails 5 應用程式中使用的插件版本 3.0 沒有出現相同的問題,并且它不依賴于已從我用于 Tomcat 的 JDK11 中洗掉的這些舊協議版本。
我會仔細檢查以確認這一點,但只要我需要將舊應用程式保留一段時間,我就需要暫時重新啟用我用于 Tomcat 的 Java 11 發行版中的舊 TLS 協議,直到Grails 5 應用程式已準備好投入生產。
我在此處的 Java 11 分發檔案中找到了有關如何執行此操作的一些說明:
https://www.petefreitag.com/item/916.cfm
另一種解決方案是使用 11.0.11 之前的 JDK 11 版本,但最終實作與上述相同,重新啟用不安全的 TLS 協議。
最后一個解決方案是為我的舊 Grails 2/Java 8 應用程式找到一個替代的郵件客戶端解決方案,考慮到它不會在生產中使用更長時間,這似乎是浪費時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/533793.html
標籤:Twilio Collective 爪哇SSL雄猫发送网格Java-11
