keytool
是 Java 开发工具包(JDK)中的一个安全工具,用于管理密钥和证书。在 CentOS 7 上使用 keytool
可以进行多种操作,例如生成密钥对、生成证书请求、导入和导出证书等。我们可以通过几个常用的 keytool
命令来了解它的基本用法。
-
生成密钥库(KeyStore)和密钥对 使用
keytool
生成新的密钥库和密钥对(通常是公钥和私钥)是一项常见任务。这个过程通常用于创建自签名证书或用于测试目的。shellkeytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -keystore mykeystore.jks -validity 365
这条命令将创建一个名为
mykeystore.jks
的密钥库,并生成一个别名为mykey
的密钥对。这个密钥对使用 RSA 算法,密钥长度为 2048 位,有效期为 365 天。 -
生成证书签名请求(CSR) 当我们需要从证书颁发机构(CA)获得一个签名的证书时,首先需要生成一个证书签名请求(CSR)。
shellkeytool -certreq -alias mykey -file mycsr.csr -keystore mykeystore.jks
这个命令将为
mykeystore.jks
密钥库中的mykey
别名生成一个 CSR,并将其保存到mycsr.csr
文件中。 -
导入证书或证书链 如果我们从 CA 获取了一个证书或自签名证书,可以使用
keytool
将其导入到密钥库中。shellkeytool -importcert -alias mykey -file mycertificate.crt -keystore mykeystore.jks
这个命令将证书
mycertificate.crt
导入到mykeystore.jks
密钥库中,关联到mykey
别名。 -
查看密钥库内容 查看密钥库中的条目是一个常见的操作,可以帮助我们了解密钥库中有哪些证书或密钥。
shellkeytool -list -keystore mykeystore.jks
这个命令将列出
mykeystore.jks
密钥库中的所有条目。 -
导出证书 有时我们可能需要将密钥库中的证书导出到文件中。
shellkeytool -exportcert -alias mykey -file mycertificate.crt -keystore mykeystore.jks
这个命令将
mykeystore.jks
密钥库中mykey
别名的证书导出到mycertificate.crt
文件中。
以上是 keytool
的一些基本用法。作为一名软件开发人员,我们可能会在需要处理 SSL/TLS 证书或与 Java 应用程序交互时遇到 keytool
。掌握这些基础命令将有助于我们在这些情况下更方便的应对。