Încercăm să generăm certificate de server pentru un cluster de servere Kafka pentru a comunica prin SSL.
Procedura funcționează, dar valabilitatea rezultată a certificatelor este de doar 30 de zile.
Solicităm 365 de zile, iar după „Pasul 1” (vezi mai jos), avem o pereche de chei cu valabilitatea corectă. Vezi (1) mai jos.
Cu toate acestea, după ce importăm certificatul semnat înapoi în depozitul de chei, valabilitatea a fost redusă la 30 de zile. Vezi (2) de mai jos.
De ce este asta și cum îl putem remedia?
echo „Pasul 1: Creați identitatea serverului și depozitul de chei”
$ORACLE_JDK_1_8_0_u181_keytool -genkey -keystore keystore.p12 -alias localhost -validity 365 -keyalg RSA -deststoretype pkcs12 -ext SAN="DNS:$SERVER_NAME.corp.com,IP:1.2.3.4"
$ORACLE_JDK_1_8_0_u181_keytool -list -v -keystore keystore.p12 -storepass $KPWD
# (1) Arată valabilitate de 365 de zile: corect
echo „Pasul 2: Exportați cheia privată din depozitul de chei într-un fișier separat”
openssl pkcs12 -in keystore.p12 -nodes -nocerts -out $SERVER_NAME_key.pem -passin pass:$KPWD -passout pass:$KPWD
echo „Pasul 3: Creați o solicitare de semnare a certificatului (CSR)”
openssl req -new -key $SERVER_NAME_key.pem -out $SERVER_NAME.csr -passin pass:$KPWD -passout pass:$KPWD
echo „Pasul 6 Semnează certificatul de server”
openssl x509 -req -in $SERVER_NAME.csr -CA CAcert.pem -CAkey CAkey.pem -CAcreateserial -out $SERVER_NAME_key_signed.pem -passin pass:$CAPD
echo „Pasul 7: importați atât certificatul CA, cât și certificatul semnat în depozitul de chei.”
$ORACLE_JDK_1_8_0_u181_keytool -keystore keystore.p12 -alias CARoot -import -file CAcert.pem -storepass $KPWD
$ORACLE_JDK_1_8_0_u181_keytool -keystore keystore.p12 -alias localhost -import -file $SERVER_NAME_key_signed.pem -storepass $KPWD
$ORACLE_JDK_1_8_0_u181_keytool -list -v -keystore keystore.p12 -storepass $KPWD
# (2) Arată valabilitate de 30 de zile: GREȘIT. DE CE?