2017-02-21 5 views
0

CentOSサーバーのJavaを最近java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/からjava-1.8.0-openjdk-1.8.0.60-2.b27.el7_1.x86_64に更新しました。通信やTLS暗号化などの問題が発生しました。これらの問題の解決策は、java.securityファイルが新しいもので上書きされていないことがわかりましたファイルにBouncyCastleProviderを指定しています)。 java.security.rmpnewjava.securityという場所に移動すると、通信の問題が解決しました。BouncyCastleはJava 8 121で必要ですか?

我々はしかし、BouncyCastleProviderで新しいjava.securityファイルを更新していなかった、まだBouncyCastleProviderを使用して我々のアプリケーションでの暗号化は、壊れていませんでした。我々はjre/lib/extディレクトリからbcprov-*.jarを削除し、Tomcatを再起動し、サーバ全体を再起動し、それでも動作します。私はリリースノートをチェックし、それに言及しているものは見つけられませんでした。私はこれらの変更が最終的に壊れてしまい、私たちの暗号化が失敗し始めると心配します。それでも、サーバー上でWITHOUTとBouncyCastleProviderが働いています。私はリリースノートをチェックして、何も言及していません。私はこれらの変更が最終的に壊れてしまい、私たちの暗号化が失敗し始めると心配します。それでも、サーバー上でWITHOUTとBouncyCastleProviderが働いています。

TLDR;私の質問はBouncyCastleがJava8に含まれていることですか?プロバイダをjava.securityから削除し、bcprov.jarを/ extディレクトリから削除したところ、まだ動作しています。暗号化にはjasypt v1.9.2を使用しています。

pom.xml

<dependency> 
    <groupId>org.bouncycastle</groupId> 
    <artifactId>bcprov-jdk15on</artifactId> 
    <version>1.52</version> 
    <scope>provided</scope> 
</dependency> 

コード:

StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); 
String algorithm = "PBEWITHSHA256AND256BITAES-CBC-BC"; 
String providerName = "BC"; 

encryptor.setAlgorithm(algorithm); 
encryptor.setProviderName(providerName); 

String encData = EMPTY_STRING; 

try{ 
    encryptor.setPassword("myPassword"); 
    encData = encryptor.encrypt(dataToEncrypt); 
} 

答えて

1

号はBouncyCastleは、OpenJDKの8、または以前のバージョンに含まれていません。

ほとんどの場合、ライブラリはWebアプリケーションにバンドルされているか、Tomcatの拡張ライブラリのいずれかにあります。

+0

ありがとうございました。それは数週間後、私たちはそれが欠落して失敗を開始したように、どこかにキャッシュされている必要があります。私はキャッシュディレクトリを消去し、すべてを再起動するなどして、どこにキャッシュされたのか分かりませんが、それでも必要と思われます。私がそれなしで暗号化していたかどうか疑問に思っていたので、どれが安堵です。再度、感謝します – Niro

関連する問題