這是針對Postgres 9.4和最新的Java(1.8.0_31-b13)使用最新的Glassfish(4.1),最新的Postgres驅動程序(9.3-1102 JDBC 41)。JDBC連接池SSL錯誤PKIX構建失敗
這也是使用商業CA證書,我檢查過CA根存在於$ JAVA_HOME/jre/lib/security/cacerts中。爲了好的措施,我還添加了中間證書。
我還驗證根和中間是在GlassFish域/域1 /配置/ cacerts.jks
我收到的錯誤信息是:
An error has occured. Ping Connection Pool failed for XXX. Connection could not be allocated because: SSL error: sun.security.validator.ValidatorException: PKIX path building failed sun.security.provider.SunCertPathBuilderException: unable to find valid certification path to requested target.
PostgreSQL的日誌顯示以下內容:
LOG: could not accept SSL connection: sslv3 alert certificate unknown
Glassfish server.log沒有顯示比上述錯誤更多的內容。
如果我設置
sslfactory=org.postgresql.ssl.NonValidatingFactory
那當然平安工作正常。但是,對於生產目的來說,這顯然是完全和完全不可接受的,因爲在防範中間人攻擊毫無疑問是強制性的情況下!