keytoolを使用せずにプログラムでCA信頼証明書を既存のキーストアファイルにインポートする

user2767117:

.cer CAを既存のキーストアファイルにインポートするJAVAプログラムを作成したいと思います。そのため、エンドユーザーはCA証明書をより便利に挿入できます(コマンドでCMDとキーを使用する必要はありません)。

JAVAコードがこれを実行できる場所はどこですか?

私はいくつかの方法を試しますが、それでも証明書をJavaに取得できません

CertificateFactory cf = CertificateFactory.getInstance("X.509");
InputStream certstream = fullStream (certfile);
Certificate certs = cf.generateCertificates(certstream);

エラーは互換性のないタイプですが、他に何か提案はありますか?

色々ありがとう

user2767117:

次のコードは、yourcert.cerを使用せずにCA証明書ファイルをキーストアに挿入しますkeytool

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.Key;
import java.security.KeyStore;
import java.security.cert.Certificate;
import java.io.IOException;
import java.io.InputStream;
import java.io.DataInputStream;
import java.io.ByteArrayInputStream;
import java.security.spec.*;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.util.Collection;

public class ImportCA {

    public static void main(String[] argv) throws Exception {
        String certfile = "yourcert.cer"; /*your cert path*/
        FileInputStream is = new FileInputStream("yourKeyStore.keystore");

        KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
        keystore.load(is, "yourKeyStorePass".toCharArray());

        String alias = "youralias";
        char[] password = "yourKeyStorePass".toCharArray();

        //////

        CertificateFactory cf = CertificateFactory.getInstance("X.509");
        InputStream certstream = fullStream (certfile);
        Certificate certs =  cf.generateCertificate(certstream);

        ///
        File keystoreFile = new File("yourKeyStorePass.keystore");
        // Load the keystore contents
        FileInputStream in = new FileInputStream(keystoreFile);
        keystore.load(in, password);
        in.close();

        // Add the certificate
        keystore.setCertificateEntry(alias, certs);

        // Save the new keystore contents
        FileOutputStream out = new FileOutputStream(keystoreFile);
        keystore.store(out, password);
        out.close();
    }

    private static InputStream fullStream ( String fname ) throws IOException {
        FileInputStream fis = new FileInputStream(fname);
        DataInputStream dis = new DataInputStream(fis);
        byte[] bytes = new byte[dis.available()];
        dis.readFully(bytes);
        ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
        return bais;
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

信頼されたルートCA証明書ストアにルート証明書をインポートせずに、オンラインCRLチェックを使用したC#X509証明書の検証

CA証明書を含む.p12ファイルを証明書ストアにインポートせずにC#で使用できますか

ローカルの信頼できる証明書ストアにない証明書チェーンを使用して.NETにサインインするCMS

プログラムで.cer証明書をキーストアにインポートする

既存の中間CAキーと証明書をkeytoolで使用して、クライアント証明書を生成する

コマンドラインを使用して、信頼されたルート証明書ストアに自己署名証明書を追加する

自己署名証明書を「信頼されたルート証明機関」ストアにインポートするのは間違っていますか?

プログラムでクライアント証明書を検証するために使用されるCA証明書を取得する方法

JWSデプロイメント用の信頼できる証明書でJARファイルに署名する

単一のファイルに複数の証明書をインポートするkeytool

信頼できるCA証明書をAndroidデバイスにインストールするにはどうすればよいですか?

相互認証証明書を使用するWCFWebサービスがクライアントチェーンの信頼の検証に失敗する

ファイアウォールで着信ポート(発信ポートのみ)を開かずにリバースプロキシを設定する

ファイアウォールで着信ポート(発信ポートのみ)を開かずにリバースプロキシを設定する

iOSプロビジョニングプロファイル-インストールできません(開発者証明書の信頼結果= 5)

keytoolコマンドラインユーティリティを使用せずに新しいJava CA証明書をインポートするにはどうすればよいですか?

SSL証明書をローカルシステムアカウントに信頼する

SSLで使用するためにJavaキーストアに既存のX.509証明書と秘密鍵をインポートする方法は?

プログラムでテキストファイルをankiにインポートする方法は?

JDBC + SSL:CA証明書、クライアント証明書、およびクライアントを単一のキーストアファイルにバンドルします

キーストアファイル内の期限切れの中間CA証明書を置き換えるにはどうすればよいですか?

コマンドラインでプロジェクトにプロビジョニングプロファイルと証明書をインストールする方法/シェルスクリプトを使用する

指定された場所から.basファイルをインポートしている間、Visual BasicProjectへのプログラムによるアクセスは信頼されません

ファイルや既存のパスワードを上書きせずに、FFプロファイルから別のプロファイルにパスワードをインポートする方法

サーバーの信頼証明書チェーンを1つのエイリアスでTruststoreにエクスポートします

クライアント証明書認証のためにルートCAをAzureAppServiceに追加する

FiddlerCoreプログラムによる証明書のインストールを「スティック」にするにはどうすればよいですか?

秘密鍵を使用せずにServiceFabricクラスターに証明書をインストールする

WindowsXPに信頼されたルートとして自己署名証明書をインストールする

TOP 一覧

  1. 1

    Python / SciPyのピーク検出アルゴリズム

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    androidsoongビルドシステムによるネイティブコードカバレッジ

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    Reactでclsxを使用する方法

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    二次導関数を数値計算するときの大きな誤差

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  12. 12

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  13. 13

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  14. 14

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  15. 15

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  16. 16

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  20. 20

    画像変更コードを実行してもボタンの画像が変更されない

  21. 21

    好き/愛の関係のためのデータベース設計

ホットタグ

アーカイブ