HTTPS证书集成——SSL证书上传Pem解析

如同阿里和众多网站一样
https://help.aliyun.com/document_detail/98573.html
通过解析Pem实现证书上传
在这里插入图片描述
要解析必须先理解Pem证书文件和私钥的加密过程。

Pem

先看:
openssl几个加密算法使用
https://www.cnblogs.com/lexiaofei/p/8442245.html
密钥文件的格式用OpenSSL生成的就只有PEM和DER两种格式,PEM的是将密钥用base64编码表示出来的

OpenSSL生成Pem证书和Pem私钥

转载:
https://blog.csdn.net/weixin_30531261/article/details/80891360
自己在之前的基础上整理了一下

1、生成RSA密钥的方法 

openssl genrsa -des3 -out privkey.pem 2048 
这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成: 
openssl genrsa -out privkey.pem 2048 
建议用2048位密钥,少于此可能会不安全或很快将不安全。 

2、生成一个证书请求 
openssl req -new -key privkey.pem -out cert.csr 
这个命令将会生成一个证书请求,当然,用到了前面生成的密钥privkey.pem文件 
这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。 

如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书: 
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095 
这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem 

3,第1步只使用rsa 秘钥结合openssl进行base64进行加密了,还需要转成pkcs8的格式(输入openssl在openssl的shell下进行)
pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt

上述加密过程:
Pem私钥:使用rsa秘钥通过openssl进行base64进行加密,之后转换成了pkcs8的格式
证书Pem码:对x509格式的证书结合私钥进行base64加密

解密

获取私钥

 public static PrivateKey getPrivateKey(String priKey) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
        //将BASE64编码的私钥字符串进行解码

        BASE64Decoder decoder = new BASE64Decoder();

        byte[] encodeByte = decoder.decodeBuffer(priKey);
        // 获取rsa秘钥

        KeyFactory keyFactory = KeyFactory.getInstance("RSA");

        //将BASE64解码后的字节数组 结合 rsa秘钥,构造成PKCS8EncodedKeySpec对象,生成私钥对象

        PrivateKey privatekey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(encodeByte));
        return privatekey;

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值