网络安全--Java代码生成自颁发 cer证书、base64 cer证书文件

目录

一、说明

二、实现代码

三、结果分析


一、说明

最近在做一个项目,涉及到数字证书这一块的内容,其中有一个需求是,根据前端维护上送参数, 后台Java实现生成cer自签名证书,证书要求跟openssl命令生成的一样 ,我的java环境是JDK1.8。

网络--keytool CA签名SSL证书(收费)
网络--keytool自签名SSL证书(免费)以及私钥签名、公钥验签

二、实现代码

package com.justin.key;

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigInteger;
import java.security.InvalidKeyException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;
import java.security.Security;
import java.security.SignatureException;
import java.security.cert.CertificateEncodingException;
import java.security.cert.X509Certificate;
import java.util.Date;
import java.util.HashMap;

import org.bouncycastle.asn1.x509.X509Name;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.x509.X509V3CertificateGenerator;

import sun.misc.BASE64Encoder;

/**
 * Java代码生成自颁发 cer证书、base64 cer证书文件
 * @author justin
 *
 */
public class CreateCerFile {
    
    private String path = "E:/";
    
    private static String CTFC_DOMAIN_NAME = "domainName";			//CN:用户姓名或域名
    private static String CTFC_ORG_UNIT_NAME = "orgUnitName";       //OU:组织单位名称
    private static String CTFC_ORG_NAME = "orgName";                //O:组织名称
    private static String CTFC_COUNTRY_CODE = "countryCode";        //C:单位的两字母国家代码
    private static String CTFC_CITY = "city";                       //L:城市或区域
    private static String CTFC_PROVINCE = "province";               //ST:省份或州
    
    private static String CTFC_VALID_START_TIME = "validStartTime"; //证书有效起始时间                       
    private static String CTFC_VALID_END_TIME = "validEndTime";     //证书有效截止时间                       
    private static String CTFC_SERIAL_NUMBER = "serialNumber";      //序列号域                          
    private static String CTFC_SIG_AlG = "signatureAlgorithm";      //签名算法
    private static String CTFC_ENCRYPT_TYPE = "encryptType";      	//加密类型
    private static String CTFC_ENCRYPT_NUM = "encryptNum";      	//加密位数
    private static String CTFC_PROVIDER = "provider";      			//提供人
    
    
    /**
     * 证书提供人࿱
  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾日三省贾斯汀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值