TLSV1.3プロトコルを有効にするためのガイドライン
TLSv1.3を有効にするためのTLSプロトコル構成の更新
Oracle NoSQL Databaseが、TLSv1.3プロトコルをサポートするようになりました。NoSQL DatabaseおよびアプリケーションをTLSv1.3で実行するには、JDK11以降、JDK8 Update 261 (JDK 8u261)以降を使用する必要があります。21.3リリース以降、NoSQL Databaseは、makebootconfig
またはsecurityconfig
ユーティリティを介して作成されたセキュリティ構成のデフォルトのTLSプロトコルにTLSv1.3プロトコルを追加します。既存のセキュリティ構成のTLSプロトコルは、最新のプロトコルTLSv1.3が最もセキュアであるため、これに更新することをお薦めします。
TLSv1.3プロトコルの有効化
- クライアント・アプリケーションのログイン・プロパティを更新します。oracle.kv.ssl.protocolsが存在する場合は、これにTLSv1.3を追加します。次に、クライアント・アプリケーションを再起動して、プロトコルの変更を有効にします。
oracle.kv.ssl.protocols="TLSv1.3,TLSv1.2"
- ストレージ・ノードの既存のセキュリティ構成ディレクトリの2つのコピーを作成します。1つはバックアップとして、もう1つはプロトコルの更新のために保持します。
ノート:
このステップは、前のステップでのクライアント・アプリケーションの変更とは対照的に、NoSQL Databaseサーバーで使用されるストレージ・ノードのセキュリティ構成を更新するためのものです。 - コピーしたセキュリティ構成ディレクトリ内のSSLプロトコルを更新します。
java -jar /kv/lib/kvstore.jar securityconfig \ config update -secdir security \ -param "allowProtocols=TLSv1.3,TLSv1.2" \ -param "clientAllowProtocols=TLSv1.3,TLSv1.2"
- 更新されたセキュリティ構成内のプロトコルにTLSv1.3があるかどうかを確認します。
プロトコルにTLSv1.3があるかどうかを確認します。java -jar kv/lib/kvstore.jar securityconfig config show -secdir KVROOT/security
- NoSQL開発環境から続行して、管理CLIを起動します。
ping
コマンドを使用して、すべてのRNが稼働しているかどうかを確認します。(~/tmp/kvroot/newKey)=> java -jar $KVHOME/lib/kvstore.jar runadmin -host localhost -port 5000 -security $KVROOT1/security/client.security Logged in admin as anonymous kv-> ping Pinging components of store HSRStore based upon topology sequence #18 10 partitions and 3 storage nodes Time: 2021-09-04 08:50:02 UTC Version: 21.2.16 Shard Status: healthy:1 writable-degraded:0 read-only:0 offline:0 Admin Status: healthy Zone [name=Austin id=zn1 type=PRIMARY allowArbiters=false] RN Status: online:3 offline:0 max DelayMillis:1 max CatchupTimeSecs:0 Storage Node [sn1] on localhost:5000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:50:02 UTC UTC Build id: 0d00330822fc Admin [admin1] Status: RUNNING,MASTER Rep Node [rg1-rn1] Status: RUNNING,MASTER sequenceNumber:63 haPort:5011 Storage Node [sn2] on localhost:6000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:50:02 UTC Build id: 0d00330822fc Rep Node [rg1-rn2] Status: RUNNING,REPLICA sequenceNumber:63 haPort:6010 delayMillis:1 catchupTimeSecs:0 Storage Node [sn3] on localhost:7000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:50:02 UTC Build id: 0d00330822fc Rep Node [rg1-rn3] Status: RUNNING,REPLICA sequenceNumber:63 haPort:7010 delayMillis:? catchupTimeSecs:?
- 更新されたセキュリティ・ディレクトリを各サーバー・ノード(ストレージ・ノード)にコピーし、古いセキュリティ構成ディレクトリを置き換えます。次に、すべてのレプリケーション・ノードがオンラインであることを確認し、各ストレージ・ノードを順番に再起動します。次のSNに進む前に、最後に再起動したSNが完全に稼働していることを確認してください。
java -jar $KVHOME/lib/kvstore.jar stop -root /Users/my_name/tmp/kvroot/kvroot1 (~/hg/kv/kvstore)=> java -jar $KVHOME/lib/kvstore.jar start -root $KVROOT1 & kv-> ping Pinging components of store HSRStore based upon topology sequence #18 10 partitions and 3 storage nodes Time: 2021-09-04 08:52:02 UTC Version: 21.2.16 Shard Status: healthy:1 writable-degraded:0 read-only:0 offline:0 Admin Status: healthy Zone [name=Austin id=zn1 type=PRIMARY allowArbiters=false] RN Status: online:3 offline:0 maxDelayMillis:0 maxCatchupTimeSecs:0 Storage Node [sn1] on localhost:5000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:52:02 UTC Build id: 0d00330822fc Admin [admin1] Status: RUNNING,MASTER Rep Node [rg1-rn1] Status: RUNNING,REPLICA sequenceNumber:62 haPort:5011 delayMillis:0 catchupTimeSecs:0 Storage Node [sn2] on localhost:6000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:52:02 UTC Build id: 0d00330822fc Rep Node [rg1-rn2] Status: RUNNING,MASTER sequenceNumber:62 haPort:6010 Storage Node [sn3] on localhost:7000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:52:02 UTC Build id: 0d00330822fc Rep Node [rg1-rn3] Status: RUNNING,REPLICA sequenceNumber:62 haPort:7010 delayMillis:0 catchupTimeSecs:0 Rep Node [rg1-rn1] Status: RUNNING,REPLICA is up, now restart the next SN (~/hg/kv/kvstore)=> java -jar $KVHOME/lib/kvstore.jar stop -root /Users/my_name/tmp/kvroot/kvroot2 kv->ping Pinging components of store HSRStore based upon topology sequence #18 10 partitions and 3 storage nodes Time: 2021-09-04 08:52:02 UTC Version: 21.2.16 Shard Status: healthy:0 writable-degraded:1 read-only:0 offline:0 Admin Status: healthy Zone [name=Austin id=zn1 type=PRIMARY allowArbiters=false] RN Status: online:2 offline:1 maxDelayMillis:? maxCatchupTimeSecs:? Storage Node [sn1] on localhost:5000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:54:02 UTC Build id: 0d00330822fc Admin [admin1] Status: RUNNING,MASTER Rep Node [rg1-rn1] Status: RUNNING,REPLICA sequenceNumber:62 haPort:5011 Storage Node [sn2] on localhost:6000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] UNREACHABLE Rep Node [rg1-rn2] Status: UNREACHABLE Storage Node [sn3] on localhost:7000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:54:02 UTC Build id: 0d00330822fc Rep Node [rg1-rn3] Status: RUNNING,REPLICA sequenceNumber:62 haPort:7010 delayMillis:? catchupTimeSecs:? (~/hg/kv/kvstore)=> java -jar $KVHOME/lib/kvstore.jar start -root $KVROOT2 & kv->ping Pinging components of store HSRStore based upon topology sequence #18 10 partitions and 3 storage nodes Time: 2021-09-04 08:55:02 UTC Version: 21.2.16 Shard Status: healthy:1 writable-degraded:0 read-only:0 offline:0 Admin Status: healthy Zone [name=Austin id=zn1 type=PRIMARY allowArbiters=false] RN Status: online:3 offline:0 maxDelayMillis:1 maxCatchupTimeSecs:0 Storage Node [sn1] on localhost:5000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:55:02 UTC Build id: 0d00330822fc Admin [admin1] Status: RUNNING,MASTER Rep Node [rg1-rn1] Status: RUNNING,REPLICA sequenceNumber:63 haPort:5011 Storage Node [sn2] on localhost:6000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:55:02 UTC Build id: 0d00330822fc Rep Node [rg1-rn2] Status: RUNNING,REPLICA sequenceNumber:63 haPort:6010 delayMillis:1 catchupTimeSecs:0 Storage Node [sn3] on localhost:7000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:55:02 UTC Build id: 0d00330822fc Rep Node [rg1-rn3] Status: RUNNING,REPLICA sequenceNumber:63 haPort:7010 delayMillis:1 catchupTimeSecs:0
TLSプロトコルをTLSv1.3のみに更新
これは、NoSQL Databaseセキュリティ構成でTLSv1.3のみを有効化する手順です。既存のセキュリティ構成にすでにTLSv1.3プロトコルがあることを前提としています。そうでない場合は、最後の手順に従ってTLSv1.3を先に有効化します。
- 既存のセキュリティ構成ディレクトリの2つのコピーを作成します。1つはバックアップとして保持し、もう1つはプロトコルの更新に使用します。
- コピーしたセキュリティ構成ディレクトリ内のSSLプロトコルを更新します。
java -jar /kv/lib/kvstore.jar securityconfig \ config update -secdir security \ -param "allowProtocols=TLSv1.3" \ -param "clientAllowProtocols=TLSv1.3"
- 更新されたセキュリティ構成のプロトコルにTLSv1.3のみがあるかどうかを確認します。
java -jar kv/lib/kvstore.jar securityconfig config show -secdir KVROOT/security
プロトコルにTLSv1.3のみがあるかどうかを確認します。
- NoSQL開発環境から続行して、管理CLIを起動します。
ping
コマンドを使用して、すべてのRNが稼働しているかどうかを確認します。(~/tmp/kvroot/newKey)=> java -jar $KVHOME/lib/kvstore.jar runadmin -host localhost -port 5000 -security $KVROOT1/security/client.security Logged in admin as anonymous kv-> ping Pinging components of store HSRStore based upon topology sequence #18 10 partitions and 3 storage nodes Time: 2021-09-04 08:56:02 UTC Version: 21.2.16 Shard Status: healthy:1 writable-degraded:0 read-only:0 offline:0 Admin Status: healthy Zone [name=Austin id=zn1 type=PRIMARY allowArbiters=false] RN Status: online:3 offline:0 max DelayMillis:1 max CatchupTimeSecs:0 Storage Node [sn1] on localhost:5000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:56:02 UTC Build id: 0d00330822fc Admin [admin1] Status: RUNNING,MASTER Rep Node [rg1-rn1] Status: RUNNING,MASTER sequenceNumber:63 haPort:5011 Storage Node [sn2] on localhost:6000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:56:02 UTC Build id: 0d00330822fc Rep Node [rg1-rn2] Status: RUNNING,REPLICA sequenceNumber:63 haPort:6010 delayMillis:1 catchupTimeSecs:0 Storage Node [sn3] on localhost:7000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:56:02 UTC Build id: 0d00330822fc Rep Node [rg1-rn3] Status: RUNNING,REPLICA sequenceNumber:63 haPort:7010 delayMillis:? catchupTimeSecs:?
- 更新されたセキュリティ・ディレクトリを各サーバー・ノード(ストレージ・ノード)にコピーし、古いセキュリティ構成ディレクトリを置き換えます。次に、すべてのレプリケーション・ノードがオンラインであることを確認し、各ストレージ・ノードを順番に再起動します。次のSNに進む前に、最後に再起動したSNが完全に稼働していることを確認してください。
java -jar $KVHOME/lib/kvstore.jar stop -root /Users/my_name/tmp/kvroot/kvroot1 (~/hg/kv/kvstore)=> java -jar $KVHOME/lib/kvstore.jar start -root $KVROOT1 & kv-> ping Pinging components of store HSRStore based upon topology sequence #18 10 partitions and 3 storage nodes Time: 2021-09-04 08:56:53 UTC Version: 21.2.16 Shard Status: healthy:1 writable-degraded:0 read-only:0 offline:0 Admin Status: healthy Zone [name=Austin id=zn1 type=PRIMARY allowArbiters=false] RN Status: online:3 offline:0 maxDelayMillis:0 maxCatchupTimeSecs:0 Storage Node [sn1] on localhost:5000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] S Status: RUNNING Ver: 21.2.16 2021-09-04 08:56:53 UTC Build id: 0d00330822fc Admin [admin1] Status: RUNNING,MASTER Rep Node [rg1-rn1] Status: RUNNING,REPLICA sequenceNumber:62 haPort:5011 delayMillis:0 catchupTimeSecs:0 Storage Node [sn2] on localhost:6000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:56:53 UTC Build id: 0d00330822fc Rep Node [rg1-rn2] Status: RUNNING,MASTER sequenceNumber:62 haPort:6010 Storage Node [sn3] on localhost:7000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:56:53 UTC Build id: 0d00330822fc Rep Node [rg1-rn3] Status: RUNNING,REPLICA sequenceNumber:62 haPort:7010 delayMillis:0 catchupTimeSecs:0 Rep Node [rg1-rn1] Status: RUNNING,REPLICA is up, now restart the next SN (~/hg/kv/kvstore)=> java -jar $KVHOME/lib/kvstore.jar stop -root /Users/my_name/tmp/kvroot/kvroot2 kv->ping Pinging components of store HSRStore based upon topology sequence #18 10 partitions and 3 storage nodes Time: 2021-09-04 08:57:13 UTC Version: 21.2.16 Shard Status: healthy:0 writable-degraded:1 read-only:0 offline:0 Admin Status: healthy Zone [name=Austin id=zn1 type=PRIMARY allowArbiters=false] RN Status: online:2 offline:1 maxDelayMillis:? maxCatchupTimeSecs:? Storage Node [sn1] on localhost:5000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:57:13 Build id: 0d00330822fc Admin [admin1] Status: RUNNING,MASTER Rep Node [rg1-rn1] Status: RUNNING,REPLICA sequenceNumber:62 haPort:5011 Storage Node [sn2] on localhost:6000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] UNREACHABLE Rep Node [rg1-rn2] Status: UNREACHABLE Storage Node [sn3] on localhost:7000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:57:13 UTC Build id: 0d00330822fc Rep Node [rg1-rn3] Status: RUNNING,REPLICA sequenceNumber:62 haPort:7010 delayMillis:? catchupTimeSecs:? (~/hg/kv/kvstore)=> java -jar $KVHOME/lib/kvstore.jar start -root $KVROOT2 & kv->ping Pinging components of store HSRStore based upon topology sequence #18 10 partitions and 3 storage nodes Time: 2021-09-04 08:57:23 UTC Version: 21.2.16 Shard Status: healthy:1 writable-degraded:0 read-only:0 offline:0 Admin Status: healthy Zone [name=Austin id=zn1 type=PRIMARY allowArbiters=false] RN Status: online:3 offline:0 maxDelayMillis:1 maxCatchupTimeSecs:0 Storage Node [sn1] on localhost:5000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:57:33 UTC Build id: 0d00330822fc Admin [admin1] Status: RUNNING,MASTER Rep Node [rg1-rn1] Status: RUNNING,REPLICA sequenceNumber:63 haPort:5011 Storage Node [sn2] on localhost:6000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:57:33 UTC Build id: 0d00330822fc Rep Node [rg1-rn2] Status: RUNNING,REPLICA sequenceNumber:63 haPort:6010 delayMillis:1 catchupTimeSecs:0 Storage Node [sn3] on localhost:7000 Zone: [name=Austin id=zn1 type=PRIMARY allowArbiters=false] Status: RUNNING Ver: 21.2.16 2021-09-04 08:57:33 UTC Build id: 0d00330822fc Rep Node [rg1-rn3] Status: RUNNING,REPLICA sequenceNumber:63 haPort:7010 delayMillis:1 catchupTimeSecs:0
クライアント・アプリケーションは、NoSQL DatabaseをTLSv1.3プロトコルでのみ接続できるようになりました。TLSv1.3のみを使用するように
oracle.kv.ssl.protocols
を確認および更新し、クライアント・アプリケーションを再起動してTLSv1.3のみで構成されていることを確認することをお薦めします。