[Bis 5. März 2020] Erneuern Sie das RDS-Zertifikat für Java

Prolog

Aktualisieren Sie Ihre Anwendung, um mit einem neuen SSL / TLS-Zertifikat (https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/ssl-certificate-rotation-) eine Verbindung zu Ihrer MySQL DB-Instanz herzustellen mysql.html)

Eine Geschichte, die bitte ca von RDS bis zum 5. März 2020 aktualisiert. Es gibt kein Problem, wenn Sie das Verfahren befolgen, aber ich habe einen Artikel geschrieben, weil es einige süchtig machende Punkte gab. ~~ Ich war so süchtig danach, dass ich einen Artikel geschrieben habe.

Annahme

・ Java ・ Kater ・ MySQL ・ Das Zertifikat ist im JKS-Format

Verfahren

1. Ein Zertifikat erhalten

Wir werden den Client zuerst aktualisieren, also laden Sie die mitgelieferte Version von ~~ 2015, 2019 ~~ ** herunter. Laden Sie die Zertifikate von 2015 und 2019 herunter **

Ist der Ort derselbe wie jetzt?

$ cd /etc/pki/java
$ wget https://s3.amazonaws.com/rds-downloads/rds-ca-2019-root.pem
$ wget https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem
$ wget https://s3.amazonaws.com/rds-downloads/rds-ca-2019-ap-northeast-1.pem
$ wget https://s3.amazonaws.com/rds-downloads/rds-ca-2015-ap-northeast-1.pem

--2020-01-22 21:19:38--  https://s3.amazonaws.com/rds-downloads/rds-ca-2019-root.pem
s3.amazonaws.com (s3.amazonaws.com)Erkundigt sich bei DNS... 52.216.139.61
s3.amazonaws.com (s3.amazonaws.com)|52.216.139.61|:Anschließen an 443...In Verbindung gebracht.
Senden einer Verbindungsanforderung über HTTP und Warten auf eine Antwort... 200 OK
Länge: 1456 (1.4K) [binary/octet-stream]
`rds-ca-2019-root.pem'Speichern in

100%[==========================================================================================================================================>] 1,456       --.-K/s Zeit 0s

2020-01-22 21:19:40 (12.8 MB/s) - `rds-ca-2019-root.pem'Speichern unter[1456/1456]

[root@letsnote java]#  wget https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem
--2020-01-22 21:19:40--  https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem
s3.amazonaws.com (s3.amazonaws.com)Erkundigt sich bei DNS... 52.216.139.61
s3.amazonaws.com (s3.amazonaws.com)|52.216.139.61|:Anschließen an 443...In Verbindung gebracht.
Senden einer Verbindungsanforderung über HTTP und Warten auf eine Antwort... 200 OK
Länge: 1432 (1.4K) [binary/octet-stream]
`rds-ca-2015-root.pem'Speichern in

100%[==========================================================================================================================================>] 1,432       --.-K/s Zeit 0s

2020-01-22 21:19:41 (13.0 MB/s) - `rds-ca-2015-root.pem'Speichern unter[1432/1432]

[root@letsnote java]#  wget https://s3.amazonaws.com/rds-downloads/rds-ca-2019-ap-northeast-1.pem
--2020-01-22 21:19:41--  https://s3.amazonaws.com/rds-downloads/rds-ca-2019-ap-northeast-1.pem
s3.amazonaws.com (s3.amazonaws.com)Erkundigt sich bei DNS... 52.216.139.61
s3.amazonaws.com (s3.amazonaws.com)|52.216.139.61|:Anschließen an 443...In Verbindung gebracht.
Senden einer Verbindungsanforderung über HTTP und Warten auf eine Antwort... 200 OK
Länge: 1464 (1.4K) [binary/octet-stream]
`rds-ca-2019-ap-northeast-1.pem'Speichern in

100%[==========================================================================================================================================>] 1,464       --.-K/s Zeit 0s

2020-01-22 21:19:42 (13.3 MB/s) - `rds-ca-2019-ap-northeast-1.pem'Speichern unter[1464/1464]

[root@letsnote java]#  wget https://s3.amazonaws.com/rds-downloads/rds-ca-2015-ap-northeast-1.pem
--2020-01-22 21:19:42--  https://s3.amazonaws.com/rds-downloads/rds-ca-2015-ap-northeast-1.pem
s3.amazonaws.com (s3.amazonaws.com)Erkundigt sich bei DNS... 52.216.139.61
s3.amazonaws.com (s3.amazonaws.com)|52.216.139.61|:Anschließen an 443...In Verbindung gebracht.
Senden einer Verbindungsanforderung über HTTP und Warten auf eine Antwort... 200 OK
Länge: 1448 (1.4K) [binary/octet-stream]
`rds-ca-2015-ap-northeast-1.pem'Speichern in

100%[==========================================================================================================================================>] 1,448       --.-K/s Zeit 0s

2020-01-22 21:19:43 (10.0 MB/s) - `rds-ca-2015-ap-northeast-1.pem'Speichern unter[1448/1448]

Wenn Sie den Client und den Server gleichzeitig aktualisieren möchten, verschlüsseln Sie die Verbindung zur DB-Instanz mit SSL / TLS (https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL]. Von .html) bis zur Version 2019. Für die Region Tokio rds-ca-2019-ap-nordost-1.pem

2. Zertifikatskonvertierung

Konvertiere pem in jks Sie müssen zwei Schritte ausführen, pem-> der und der-> jks ** Stellen Sie beim Konvertieren in jks sicher, dass sich der Dateiname vom aktuellen Zertifikat unterscheidet ** Das Passwort kann das gleiche sein wie jetzt. Da es sich um einen Zertifikatzugriff handelt, hat es nichts mit dem DB-Kennwort zu tun.

$ cd /etc/pki/java
$ openssl x509 -outform der -in ./rds-ca-2019-root.pem -out ./rds-ca-2019-root.der
$ openssl x509 -outform der -in ./rds-ca-2015-root.pem -out ./rds-ca-2015-root.der
$ openssl x509 -outform der -in ./rds-ca-2019-ap-northeast-1.pem -out ./rds-ca-2019-ap-northeast-1.der
$ openssl x509 -outform der -in ./rds-ca-2015-ap-northeast-1.pem -out ./rds-ca-2015-ap-northeast-1.der
$ ll

lrwxrwxrwx.1 Wurzel Wurzel 40 9. Juni 2019 cacerts-> /etc/pki/ca-trust/extracted/java/cacerts
-rw-r--r--1 Wurzel Wurzel 1029 22. Januar 21:23 rds-ca-2015-ap-northeast-1.der
-rw-r--r--1 root root 1448 7. März 2015 rds-ca-2015-ap-northeast-1.pem
-rw-r--r--1 Wurzel Wurzel 1016 22. Januar 21:23 rds-ca-2015-root.der
-rw-r--r--1 root root 1432 7. März 2015 rds-ca-2015-root.pem
-rw-r--r--1 Wurzel Wurzel 1040 22. Januar 21:23 rds-ca-2019-ap-northeast-1.der
-rw-r--r--1 Wurzel Wurzel 1464 19. September 02:07 rds-ca-2019-ap-northeast-1.pem
-rw-r--r--1 Wurzel Wurzel 1034 22. Januar 21:23 rds-ca-2019-root.der
-rw-r--r--1 Wurzel Wurzel 1456 5. September 02:53 rds-ca-2019-root.pem
[root@letsnote java]#

$ keytool -import -file ./rds-ca-2019-root.der -destkeystore ./rds-combined-ca-bundle-2019.jks -deststoretype jks -alias rds_root

Bitte geben Sie das Keystore-Passwort ein:
Das Keystore-Passwort ist zu kurz-Muss mindestens 6 Zeichen lang sein
Bitte geben Sie das Keystore-Passwort ein:
Bitte geben Sie Ihr neues Passwort erneut ein:
Inhaber: CN=Amazon RDS Root 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", ST=Washington, L=Seattle, C=US
Der Emittent: CN=Amazon RDS Root 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", ST=Washington, L=Seattle, C=US
Ordnungsnummer: c73467369250ae75
Gültigkeitsbeginn: Fri Aug 23 02:08:50 JST 2019 Enddatum: Fri Aug 23 02:08:50 JST 2024
Zertifikat Fingerabdruck:
         MD5:  66:EC:63:BB:25:C4:A5:34:82:C6:C0:18:2E:88:9F:0D
         SHA1: D4:0D:DB:29:E3:75:0D:FF:A6:71:C3:14:0B:BF:5F:47:8D:1C:80:96
         SHA256: F2:54:C7:D5:E9:23:B5:B7:51:0C:D7:9E:F7:77:7C:1C:A7:E6:4A:3C:97:22:E4:0D:64:54:78:FC:70:AA:D0:08
Name des Signaturalgorithmus: SHA256withRSA
Betreff Public-Key-Algorithmus:2048-Bit-RSA-Schlüssel
Ausführung: 3

Erweiterung:

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 73 5F 60 D8 BC CB 03 98   F4 2B 17 34 2E 36 5A A6  s_`......+.4.6Z.
0010: 60 FF BC 1F                                        `...
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 73 5F 60 D8 BC CB 03 98   F4 2B 17 34 2E 36 5A A6  s_`......+.4.6Z.
0010: 60 FF BC 1F                                        `...
]
]

Vertrauen Sie diesem Zertifikat?[Nein]:Ja
Zertifikat zum Keystore hinzugefügt

$ keytool -import -file ./rds-ca-2015-root.der -destkeystore ./rds-combined-ca-bundle-2019.jks -deststoretype jks -alias rds_root_2015
$ keytool -import -file ./rds-ca-2019-ap-northeast-1.der -destkeystore ./rds-combined-ca-bundle-2019.jks -deststoretype jks -alias rds_ap-northeast-1
$ keytool -import -file ./rds-ca-2015-ap-northeast-1.der -destkeystore ./rds-combined-ca-bundle-2019.jks -deststoretype jks -alias rds_ap-northeast-1_2015

$ ll

-rw-r--r--1 Wurzel Wurzel 1029 22. Januar 21:23 rds-ca-2015-ap-northeast-1.der
-rw-r--r--1 root root 1448 7. März 2015 rds-ca-2015-ap-northeast-1.pem
-rw-r--r--1 Wurzel Wurzel 1016 22. Januar 21:23 rds-ca-2015-root.der
-rw-r--r--1 root root 1432 7. März 2015 rds-ca-2015-root.pem
-rw-r--r--1 Wurzel Wurzel 1040 22. Januar 21:23 rds-ca-2019-ap-northeast-1.der
-rw-r--r--1 Wurzel Wurzel 1464 19. September 02:07 rds-ca-2019-ap-northeast-1.pem
-rw-r--r--1 Wurzel Wurzel 1034 22. Januar 21:23 rds-ca-2019-root.der
-rw-r--r--1 Wurzel Wurzel 1456 5. September 02:53 rds-ca-2019-root.pem
-rw-r--r--1 Wurzel Wurzel 4313 22. Januar 21:26 rds-combined-ca-bundle-2019.jks

$ keytool -v -list -keystore  ./rds-combined-ca-bundle-2019.jks

Bitte geben Sie das Keystore-Passwort ein:
Keystore-Typ: jks
Keystore-Anbieter: SUN

Keystore enthält 4 Einträge

alias: rds_root_2015
Erstellungsdatum: 2020/01/22
Eintragsart: trustedCertEntry

Inhaber: CN=Amazon RDS Root CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", L=Seattle, ST=Washington, C=US
Der Emittent: CN=Amazon RDS Root CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", L=Seattle, ST=Washington, C=US
Ordnungsnummer: 42
Gültigkeitsbeginn: Thu Feb 05 18:11:31 JST 2015 Enddatum: Thu Mar 05 18:11:31 JST 2020
Zertifikat Fingerabdruck:
         MD5:  CF:C1:A2:0D:A1:C1:B1:3C:12:0B:C1:5A:E5:33:73:EF
         SHA1: E8:11:88:56:E7:A7:CE:3E:5E:DC:9A:31:25:1B:93:AC:DC:43:CE:B0
         SHA256: AF:EB:B8:40:BE:0C:1A:F6:5E:63:E0:CB:D7:9C:CE:35:65:4B:F6:0F:4E:07:62:54:BB:A9:35:E9:63:6D:53:F7
Name des Signaturalgorithmus: SHA1withRSA
Betreff Public-Key-Algorithmus:2048-Bit-RSA-Schlüssel
Ausführung: 3

Erweiterung:

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 4E 02 EE AC 3E F6 15 C8   4C ED 2C F5 05 C1 8F 9C  N...>...L.,.....
0010: 84 08 49 83                                        ..I.
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4E 02 EE AC 3E F6 15 C8   4C ED 2C F5 05 C1 8F 9C  N...>...L.,.....
0010: 84 08 49 83                                        ..I.
]
]



*******************************************
*******************************************


alias: rds_ap-northeast-1
Erstellungsdatum: 2020/01/22
Eintragsart: trustedCertEntry

Inhaber: CN=Amazon RDS ap-northeast-1 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", L=Seattle, ST=Washington, C=US
Der Emittent: CN=Amazon RDS Root 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", ST=Washington, L=Seattle, C=US
Ordnungsnummer: 7045
Gültigkeitsbeginn: Thu Sep 19 01:56:20 JST 2019 Enddatum: Fri Aug 23 02:08:50 JST 2024
Zertifikat Fingerabdruck:
         MD5:  E1:E7:BE:95:BC:D4:C1:F8:BE:8C:44:EE:A1:34:48:0C
         SHA1: 47:A3:F9:20:64:5C:9F:9D:48:8C:7D:E6:0B:86:D6:05:13:00:16:A1
         SHA256: 90:91:AF:2D:FA:F4:ED:88:2A:4A:B3:3B:9B:4E:DD:2A:8C:BA:41:0A:AB:22:04:17:EF:3D:57:61:85:C2:20:ED
Name des Signaturalgorithmus: SHA256withRSA
Betreff Public-Key-Algorithmus:2048-Bit-RSA-Schlüssel
Ausführung: 3

Erweiterung:

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 73 5F 60 D8 BC CB 03 98   F4 2B 17 34 2E 36 5A A6  s_`......+.4.6Z.
0010: 60 FF BC 1F                                        `...
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:0
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 2E 6A 0E 4B 59 85 4A 38   FE B2 75 0F C7 80 E0 4B  .j.KY.J8..u....K
0010: 74 A4 2C 56                                        t.,V
]
]



*******************************************
*******************************************


alias: rds_ap-northeast-1_2015
Erstellungsdatum: 2020/01/22
Eintragsart: trustedCertEntry

Inhaber: CN=Amazon RDS ap-northeast-1 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", L=Seattle, ST=Washington, C=US
Der Emittent: CN=Amazon RDS Root CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", L=Seattle, ST=Washington, C=US
Ordnungsnummer: 44
Gültigkeitsbeginn: Fri Feb 06 07:03:06 JST 2015 Enddatum: Fri Mar 06 07:03:06 JST 2020
Zertifikat Fingerabdruck:
         MD5:  D0:F8:8E:C5:33:AF:FC:6B:76:92:0F:78:C4:BE:4A:CE
         SHA1: 4B:2D:8A:E0:C1:A3:A9:AF:A7:BB:65:0C:5A:16:8A:39:3C:03:F2:C5
         SHA256: DC:11:19:D5:45:F2:2A:CF:13:B6:6E:29:D9:3F:E8:AC:75:F6:9E:EC:CB:D3:AE:F3:CB:22:EC:A4:FD:77:17:F8
Name des Signaturalgorithmus: SHA1withRSA
Betreff Public-Key-Algorithmus:2048-Bit-RSA-Schlüssel
Ausführung: 3

Erweiterung:

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 4E 02 EE AC 3E F6 15 C8   4C ED 2C F5 05 C1 8F 9C  N...>...L.,.....
0010: 84 08 49 83                                        ..I.
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:0
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 88 8A 33 44 3A 9F 52 B8   12 62 F1 B3 76 57 C4 83  ..3D:.R..b..vW..
0010: 5B C0 4C 11                                        [.L.
]
]



*******************************************
*******************************************


alias: rds_root
Erstellungsdatum: 2020/01/22
Eintragsart: trustedCertEntry

Inhaber: CN=Amazon RDS Root 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", ST=Washington, L=Seattle, C=US
Der Emittent: CN=Amazon RDS Root 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", ST=Washington, L=Seattle, C=US
Ordnungsnummer: c73467369250ae75
Gültigkeitsbeginn: Fri Aug 23 02:08:50 JST 2019 Enddatum: Fri Aug 23 02:08:50 JST 2024
Zertifikat Fingerabdruck:
         MD5:  66:EC:63:BB:25:C4:A5:34:82:C6:C0:18:2E:88:9F:0D
         SHA1: D4:0D:DB:29:E3:75:0D:FF:A6:71:C3:14:0B:BF:5F:47:8D:1C:80:96
         SHA256: F2:54:C7:D5:E9:23:B5:B7:51:0C:D7:9E:F7:77:7C:1C:A7:E6:4A:3C:97:22:E4:0D:64:54:78:FC:70:AA:D0:08
Name des Signaturalgorithmus: SHA256withRSA
Betreff Public-Key-Algorithmus:2048-Bit-RSA-Schlüssel
Ausführung: 3

Erweiterung:

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 73 5F 60 D8 BC CB 03 98   F4 2B 17 34 2E 36 5A A6  s_`......+.4.6Z.
0010: 60 FF BC 1F                                        `...
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 73 5F 60 D8 BC CB 03 98   F4 2B 17 34 2E 36 5A A6  s_`......+.4.6Z.
0010: 60 FF BC 1F                                        `...
]
]



*******************************************
*******************************************

keytool -v -list -keystore. / rds-kombiniert-ca-bundle-2019.jks zeigt eine Liste von Zertifikaten an, stellen Sie also sicher, dass Sie vier haben. Sie können auch das Start- und Enddatum des Gültigkeitszeitraums überprüfen.

3. Aktualisieren Sie context.xml

Stoppen Sie Tomcat vor dem Update.

Machen Sie trustCertificateKeyStoreUrl = file: /// etc / pki / java / rds-kombiniert-ca-bundle.jks in url zum Namen der erstellten jks-Datei.

context.xml


<Resource name="jdbc/honyaDB" auth="Container"
    type="javax.sql.DataSource"
    username="honya"
    password="honyapasswd"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://honya.ap-northeast-1.rds.amazonaws.com:3306/honyaDB?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=true&amp;requireSSL=true&amp;verifyServerCertificate=true&amp;trustCertificateKeyStoreUrl=file:///etc/pki/java/rds-combined-ca-bundle.jks&amp;trustCertificateKeyStoreType=JKS&amp;trustCertificateKeyStorePassword=password"
/>

Epilog

Ich war ungeduldig, weil es sich in dem Moment widerspiegeln wird, in dem ich context.xml speichere: schreien: (Da es sich um eine Verifizierungsumgebung handelt, ist dies nicht der Fall.)

Wenn das Zertifikat denselben Dateinamen hat, muss die Datei context.xml nicht geändert werden. Die Verwaltung der alten und neuen Datei mit demselben Dateinamen verursacht jedoch Probleme. Daher habe ich beschlossen, den Dateinamen zu ändern.

Als ich es mit dem Versionszertifikat 2019 (rds-ca-2019-ap-northeast-1.pem) ausprobierte, funktionierte es nicht gut: heat_smile:

  1. Verwenden Sie nicht die mitgelieferte Version des Zertifikats, in der Sie das ** Zertifikat in Certificate Conversion installieren möchten. alert-2.gif Es wird nur der erste installiert. ** ** **

Weitere Informationen finden Sie unter "Erneuerung des SSL / TLS-Zertifikats", da die Serverseite nur auf die aws-Konsole klickt.

Referenz

Aktualisieren Sie Ihre Anwendung, um mit dem neuen SSL / TLS-Zertifikat (https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/ssl-certificate-rotation-) eine Verbindung zu Ihrer MariaDB DB-Instanz herzustellen mariadb.html)

Verschlüsseln der Verbindung zur DB-Instanz mit SSL / TLS

Erneuerung des SSL / TLS-Zertifikats

Recommended Posts

[Bis 5. März 2020] Erneuern Sie das RDS-Zertifikat für Java
Für JAVA-Lernen (2018-03-16-01)
2017 IDE für Java
Java für Anweisung
[Java] für Anweisung, während Anweisung
[Java] Paket für die Verwaltung
[Java] für Anweisung / erweitert für Anweisung
Gegenmaßnahmen für OutOfMemoryError in Java
NLP für Java (NLP4J) (2)
(Memo) Java für Anweisung
NLP für Java (NLP4J) (1)