检查证书别名是否已存在

时间:2012-07-04 07:55:48

标签: shell certificate ssl-certificate public-key-encryption keytool

我正在实现一个shell脚本,它将使用keytool命令创建一个新的自签名证书。以下是我用来创建证书的命令

    echo "# Creating key and Self Signed Certificate"
    keytool -genkey -alias cert -keyalg RSA -storepass "${KEYSTORE_PASS}" -keypass         "${KEY_PASS}" -keystore cert/keystore.jks -validity 3650 -keysize 1024 -dname "C=${CNTRY}, ST=${ST}, L=${LOC}, O=${ORG}, OU=Certificates, CN=${ORG} SEURAT Certificate Authority"

exit_on_error $?

对于密码和其他主题信息,我收到用户的输入。现在,如果别名已存在,则此命令失败。我可以使用

删除别名
    keytool -delete -alias 1 -keystore cert/keystore.jks

但如果别名不存在,则上述命令失败。那么如何检查shell脚本是否存在别名,然后删除证书并在其名称中创建new,或者只是创建它?

1 个答案:

答案 0 :(得分:3)

也许您可以先列出现有的别名:

[ -z keytool -list -alias cert ] && keytool -genkey -alias cert -keyalg RSA -storepass "${KEYSTORE_PASS}" -keypass