个人技术分享

报错keytool error: java.lang.Exception: Input not an X.509 certificate

该报错表示需要 X.509 格式的证书,可以通过下面的命令转换

openssl x509 -in <原证书>  -out <X.509证书>
# 例如
openssl x509 -in test.crt  -out test509.crt 

参考: Error Importing SSL certificate : Not an X.509 Certificate

p7b转换成crt格式证书

openssl pkcs7 -print_certs -in <原p7b证书> -out <crt格式证书>
# 例如 
openssl pkcs7 -print_certs -in test.p7b -out test.crt

crt格式转成pem格式证书

openssl x509 -in <原crt格式证书> -out <PEM格式证书> -outform PEM
例如:
openssl x509 -in test.crt -out test.pem -outform PEM

验证指定证书是否生效

openssl s_client -connect <域名>  -CAfile <证书>
# 例如
openssl s_client -connect test.com:443  -CAfile ca-bundle.crt  
# 或者
openssl s_client -connect test.com:443  -CApath /etc/ssl/certs/ 

参考: OpenSSL Verify return code: 20 (unable to get local issuer certificate)

保存LDAPS的自定义证书

echo -n | openssl s_client -connect testldaps.com:636 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ldapserver.pem

参考: How to save the LDAP SSL Certificate from OpenSSL