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

使用 Java 中的 Bouncy Castle 自簽名 X509 證書

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

問題描述

我需要使用 Java 中的 Bouncy Castle 創(chuàng)建自簽名 X509 證書,但我嘗試包含的每個(gè)類都已棄用.我該如何解決這個(gè)問題?是否還有其他課程要包括在內(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 類.如果您使用的是 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 證書的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

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

相關(guān)文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環(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ù)庫)
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: 久久久久久综合 | 欧美xxxx在线 | 国产男女视频 | 中文字幕日韩一区 | 亚洲激情专区 | 在线观看免费av网 | 午夜在线影院 | 欧美精品国产精品 | 亚洲视频在线观看一区二区三区 | 色婷婷影院 | 国产精品国产三级国产aⅴ中文 | 久久大陆 | 精品亚洲永久免费精品 | 98成人网 | 青青操av| 99精品久久久久久中文字幕 | 久久不射电影网 | 欧美一级特黄aaa大片在线观看 | av在线视| 黄色免费看 | 亚洲精品一二三区 | 免费一区二区三区 | 看片91 | 超碰97av | 免费亚洲成人 | 99久久婷婷国产综合精品电影 | 亚洲一区二区三区免费在线观看 | 性福视频在线观看 | 午夜影院在线观看视频 | 日韩欧美精品在线 | japan25hdxxxx日本 做a的各种视频 | 久久久久久国产精品 | 亚州精品天堂中文字幕 | 男人的天堂中文字幕 | 欧美一区二区在线 | 国产在线拍偷自揄拍视频 | 日韩欧美中文 | 国产成人免费视频网站高清观看视频 | 久久久国产一区二区三区四区小说 | 久久精品中文字幕 | 欧美日韩一区精品 |