JDK8アプリケーションでの確認/Amazon S3 and Amazon CloudFront migrating service certificates to Amazon Trust Services starting March 23rd 2021.
以下のようなメールが届きました。近くなってきたので放置せずに対応します。
メール内に掲載されているリンク先でAWSブログ記事を読むと、
全般的に「よっぽど古くなければ大丈夫!!」というニュアンス。
弊社のアプリケーション(Java)はEC2上で動作しているので「AWSがサポートしているはずだから、最新化してれば、たぶん大丈夫かなぁ。」と思いつつも「対応を要するかどうかはアプリケーション次第」とも書かれていてモヤモヤ。
以下の証明書が全て揃っていればよい模様なので、とりあえずJavaの証明書ストアにインストールされているかをチェックしました。
必要なルート証明書
- CN=Amazon Root CA 1,O=Amazon,C=US
- CN=Amazon Root CA 2,O=Amazon,C=US
- CN=Amazon Root CA 3,O=Amazon,C=US
- CN=Amazon Root CA 4,O=Amazon,C=US
- CN=Starfield Services Root Certificate Authority – G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US
※各証明書はAWSのリポジトリからダウンロードできます。
確認結果
Amazon Linux(2ではない)のJava8(update 272)ではCA3とCA4がありませんでした。涙 (Amazon Linux 2には存在してました。)
# keytool -list -v -storepass changeit -keystore $JAVA_HOME/jre/lib/security/cacerts | grep amazon
別名: extra-amazonrootca1
別名: extra-amazonrootca2
★ca3がない!★
★ca4がない!★
# keytool -list -v -storepass changeit -keystore $JAVA_HOME/jre/lib/security/cacerts | grep starfield
別名: extra-starfieldrootcag2
別名: extra-starfieldservicesrootcag2
別名: starfieldclass2ca
If your tests of any of the Test URLs failed, you must update your trust store.
テストURLのいずれかのテストが失敗した場合は、トラストストアを更新する必要があります。
と書いてあるので、以下のスクリプトを使って追加しました。
lhriley/aws-cert-import.sh さんのスクリプトを改良(=KEYSTOREを変数にしただけ)させていただきました。感謝(thank you very much)。
#!/bin/bash -e
# create a temp dir in which to work
OLDDIR="$PWD"
TMPDIR="/tmp/_aws-ca"
KEYSTORE=$JAVA_HOME/jre/lib/security/cacerts
mkdir "${TMPDIR}" && cd "${TMPDIR}"
AWS_CERTS=(
AmazonRootCA1.pem
AmazonRootCA2.pem
AmazonRootCA3.pem
AmazonRootCA4.pem
)
# download the bundle(s)
for cert in ${AWS_CERTS[*]}; do
wget "https://www.amazontrust.com/repository/${cert}" -O "${TMPDIR}/${cert}"
# extract a human-readable alias from the cert
ALIAS=$(openssl x509 -noout -text -in "${TMPDIR}/${cert}" |
perl -ne 'next unless /Subject:/; s/.*CN=//; print')
echo "importing $ALIAS"
# import the cert into the default java keystore
keytool -import -keystore $KEYSTORE -storepass changeit -noprompt -alias "$ALIAS" -file "${TMPDIR}/${cert}"
done
# back out of the temp dir and delete the temp folder
cd "$OLDDIR"
rm -r "${TMPDIR}"
# list the imported certs as a sanity check
keytool -list -keystore $KEYSTORE -storepass changeit -noprompt | grep -i Amazon
Author And Source
この問題について(JDK8アプリケーションでの確認/Amazon S3 and Amazon CloudFront migrating service certificates to Amazon Trust Services starting March 23rd 2021.), 我々は、より多くの情報をここで見つけました https://qiita.com/s-katsumata/items/a8b1f8119603b7bc484d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .