JWT加签从密钥库获取密钥对完成对JWT的签名,密钥库生成步骤

发布时间 2023-05-23 10:51:13作者: 奋斗de小青年

 最近再用jwt生成token,记录一下使用jdk生成秘钥库步骤,方便之后查询使用

1、生成密钥库脚本命令(在本地jdk目录bin目录下,窗口路径输入cmd会车)

keytool -genkey -alias jwt -keyalg RSA -keypass 123456 -keystore jwt.jks -storepass 123456

参数说明:

-alias 别名

-keyalg 密钥算法

-keypass 密钥口令

-keystore 生成密钥库的存储路径和名称

-storepass 密钥库口令

 

 

2、gateway项目中本地加载公钥,省去远程加载

 /**
     * 本地加载JWT验签公钥
     * @return
     */
    @Bean
    public RSAPublicKey rsaPublicKey() {
        Resource resource = new ClassPathResource("public.key");
        InputStream is = resource.getInputStream();
        String publicKeyData = IoUtil.read(is).toString();
        X509EncodedKeySpec keySpec = new X509EncodedKeySpec((Base64.decode(publicKeyData)));

        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        RSAPublicKey rsaPublicKey = (RSAPublicKey)keyFactory.generatePublic(keySpec);
        return rsaPublicKey;
    }

生成公钥步骤

1)、访问 Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 下载OpenSSL ,根据系统选择对应版本

 

编辑

然后在在本地jdk目录bin目录下,窗口路径输入cmd会车执行:( jwt.jks需要的是上一步生成的路径)

keytool -list -rfc --keystore jwt.jks | openssl x509 -inform pem -pubkey

最后输入密钥库口令就可以看到生成的公钥,将内容复制到pulic.key文件即可