Eu generez un CA și un certificat cu cfssl
dar nu pot importa certificatul în depozitul de chei JAVA cu instrument cheie
.
Este certificatul generat incompatibil cu implementarea keycert/Java x509? Sau fac ceva greșit?
Generați CA
# genera my-ca{,-key}.pem
cfssl print-defaults csr \
| cfssl gencert -initca - \
| cfssljson -bare my-ca
# import ca
keytool -importcert -alias my-ca -file my-ca.pem -storepass changeit -noprompt
Notă: keytool -importcert funcționează bine în acest caz
Generați certificatul
cat cfssl.json
#{
# „semnare”: {
# "Mod implicit": {
# "expiry": "87600h",
# „utilizări”: [„semnare”, „criptare cheie”, „autentificare server”, „autentificare client”]
# }
# }
#}
# genera certificat
ecou {} \
| cfssl gencert -ca=my-ca.pem -ca-key=my-ca-key.pem -config=cfssl.json -hostname=my-host - \
| cfssljson -bare-mi-gazda
# certificat de import
keytool -importcert -file my-host.pem -alias my-host -storepass changeit -noprompt
Dar acum, răspunde cu:
eroare keytool: java.lang.Exception: Introduceți nu un certificat X.509
Asta mă încurcă. Openssl pare mulțumit de certificat:
openssl x509 -text -in my-host.pem
# ieșirea pare OK, ecdsa-with-SHA256, vezi esențialul
openssl x509 -in my-host.pem \
| diff my-host.pem -
# nicio diferență între x509 regenerat
-ieșire text
Mai multe observații: CURL și browserele web sunt bine să ia certificatul. Numai aplicațiile Java se plâng.
Info:
versiunea cfssl
#Versiune: 1.2.0
#Reviziune: dev
#Runtime: go1.8.1
java --versiune
#openjdk 14.0.2 2020-07-14
#OpenJDK Runtime Environment (build 14.0.2+12-Ubuntu-120.04)
#OpenJDK Server VM pe 64 de biți (build 14.0.2+12-Ubuntu-120.04, mod mixt, partajare)
keytool -showinfo -tls
# vezi esenta pentru ieșirea completă
-showinfo -tls