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