java keytool

java 创建keystore:

keytool -genkey -alias debug -keypass 123456789 -keyalg RSA -keysize 1024 -validity 365 -keystore sign-debug.keystore -storepass 123456789

查看keystore:

 keytool -list -v -keystore .\sign-debug.keystore

其中keytool命令所在目录:

C:\Program Files\Java\jdk1.8.0_261\bin

### Java Keytool 使用指南 `Keytool` 是 JDK 提供的一个命令行工具,用于创建和管理密钥库(keystore)、公私钥对以及数字证书。以下是关于 `Keytool` 的主要功能及其使用说明: #### 1. 创建密钥库 (Keystore) 可以使用以下命令来生成一个新的密钥库,并为其设置密码: ```bash keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.jks ``` 上述命令会生成一个基于 RSA 算法的密钥对,有效期为一年,并将其存储在名为 `mykeystore.jks` 的密钥库中[^1]。 #### 2. 导入 CA 根证书 如果需要导入第三方认证机构(CA)颁发的根证书到现有的密钥库中,可执行如下操作: ```bash keytool -importcert -file rootca.cer -keystore mykeystore.jks -alias rootca ``` 这一步通常是为了让应用信任特定的外部服务提供商所使用的证书[^2]。 #### 3. 查看密钥库存储的内容 为了确认当前密钥库中的条目详情,可以通过下面这条指令实现: ```bash keytool -list -v -keystore mykeystore.jks ``` 该命令不仅列出了所有的别名(alias),还包含了每个项的具体信息如算法类型、指纹(Fingerprint)等[^3]。 #### 4. 解决 SSL 握手失败问题 当遇到类似于 `javax.net.ssl.SSLHandshakeException` 这样的错误时,可能是因为客户端未能验证服务器端的身份或者反之亦然。此时应该检查双方是否都加载了正确的证书链,并且这些证书已经被加入到了各自的 truststore 中[^4]。 #### 5. 自动化脚本集成 对于大规模部署场景下频繁更新或替换证书的需求来说,编写自动化脚本来完成整个流程是非常必要的。例如利用 shell 脚本配合 cron 定时器定时检测即将过期的证书并重新申请/安装它们。 ### 示例代码片段:配置 Jasypt 加密解密 Bean ```java @Bean public PooledPBEStringEncryptor encryptor() { PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); encryptor.setAlgorithm("PBEWithMD5AndDES"); encryptor.setPassword(System.getenv("ENCRYPTION_PASSWORD")); encryptor.setPoolSize(4); return encryptor; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值