久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

使用 Java 中的 Bouncy Castle 自簽名 X509 證書(shū)

Self signed X509 Certificate with Bouncy Castle in Java(使用 Java 中的 Bouncy Castle 自簽名 X509 證書(shū))
本文介紹了使用 Java 中的 Bouncy Castle 自簽名 X509 證書(shū)的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

我需要使用 Java 中的 Bouncy Castle 創(chuàng)建自簽名 X509 證書(shū),但我嘗試包含的每個(gè)類(lèi)都已棄用.我該如何解決這個(gè)問(wèn)題?是否還有其他課程要包括在內(nèi)?謝謝

I need to create a self signed X509 Certificate with Bouncy Castle in Java, but every class I try to include is deprecated. How can I solve this? Is there some other class to include? Thanks

推薦答案

使用Bouncycastle最新版本-1.55 1.66

更新@Bewusstsein 的答案.自此答案(2017 年 5 月 11 日)起,最新版本不推薦使用 bouncycastle 類(lèi).如果您使用的是 1.55 或更高版本:

Using Bouncycastle latest version - 1.55 1.66

Update to the answer by @Bewusstsein. The bouncycastle classes are deprecated in the latest version as of this answer (5/11/2017). If you are using version 1.55 or later:

public static Certificate selfSign(KeyPair keyPair, String subjectDN) throws OperatorCreationException, CertificateException, IOException
{
    Provider bcProvider = new BouncyCastleProvider();
    Security.addProvider(bcProvider);

    long now = System.currentTimeMillis();
    Date startDate = new Date(now);

    X500Name dnName = new X500Name(subjectDN);
    BigInteger certSerialNumber = new BigInteger(Long.toString(now)); // <-- Using the current timestamp as the certificate serial number

    Calendar calendar = Calendar.getInstance();
    calendar.setTime(startDate);
    calendar.add(Calendar.YEAR, 1); // <-- 1 Yr validity

    Date endDate = calendar.getTime();

    String signatureAlgorithm = "SHA256WithRSA"; // <-- Use appropriate signature algorithm based on your keyPair algorithm.

    ContentSigner contentSigner = new JcaContentSignerBuilder(signatureAlgorithm).build(keyPair.getPrivate());

    JcaX509v3CertificateBuilder certBuilder = new JcaX509v3CertificateBuilder(dnName, certSerialNumber, startDate, endDate, dnName, keyPair.getPublic());

    // Extensions --------------------------

    // Basic Constraints
    BasicConstraints basicConstraints = new BasicConstraints(true); // <-- true for CA, false for EndEntity

    certBuilder.addExtension(new ASN1ObjectIdentifier("2.5.29.19"), true, basicConstraints); // Basic Constraints is usually marked as critical.

    // -------------------------------------

    return new JcaX509CertificateConverter().setProvider(bcProvider).getCertificate(certBuilder.build(contentSigner));
}

這篇關(guān)于使用 Java 中的 Bouncy Castle 自簽名 X509 證書(shū)的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周?chē)h(huán)繞文本?)
MyBatis, how to get the auto generated key of an insert? [MySql](MyBatis,如何獲取插入的自動(dòng)生成密鑰?[MySql])
Inserting to Oracle Nested Table in Java(在 Java 中插入 Oracle 嵌套表)
Java: How to insert CLOB into oracle database(Java:如何將 CLOB 插入 oracle 數(shù)據(jù)庫(kù))
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對(duì)象?)
Use threading to process file chunk by chunk(使用線(xiàn)程逐塊處理文件)
主站蜘蛛池模板: 韩日免费视频 | 国产精品久久国产愉拍 | 99精品视频在线 | 91麻豆产精品久久久久久 | 北条麻妃一区二区三区在线视频 | 狠狠操电影 | 日干夜干 | 国产精品免费福利 | 犬夜叉在线观看 | 日日操视频 | 久久国产视频一区 | 久久精品亚洲 | 久久精品国产一区 | 91久久 | 国产一区影院 | 日韩国产精品一区二区三区 | 欧美日韩亚洲一区 | 在线观看视频一区二区三区 | 欧美黄 片免费观看 | 老熟女毛片| 欧美国产91 | 成av在线 | 精品一区二区三区在线播放 | 91精品久久 | 精精国产xxxx视频在线播放 | 中文字幕视频在线看5 | 91看片网| 国产精品视频网 | 性色av网站 | 国产高清精品在线 | 国产精品欧美一区喷水 | 欧美精品欧美精品系列 | 高清成人av | 欧美专区在线视频 | 亚洲欧美在线视频 | 视频一区二区国产 | 人妖av| 人和拘一级毛片c | 欧美一区二区三区在线观看 | 国产毛片久久久 | 精品日韩在线 |