1

次の情報についてユーザーからの入力を受け取るAPIサーバーを開発しています

"CN=ABC123,O=DEF,L=XYZ,S=CA,C=US,E=info@abc.com"

ルート証明書を使用して、署名済みの開発者証明書を作成します。使用して証明書を作成するために、開発チュートリアル用にmakecert.exemakecert.exeを使用して自己署名証明書を作成し、次のコマンドを使用してルート証明書を作成しました。

makecert.exe ^
-n "CN=CARoot" ^
-r ^
-pe ^
-a sha512 ^
-len 4096 ^
-cy authority ^
-sv CARoot.pvk ^
CARoot.cer

pvk2pfx.exe ^
-pvk CARoot.pvk ^
-spc CARoot.cer ^
-pfx CARoot.pfx ^
-po Test123

コマンドプロンプトで証明書とprivate.keyパスワードをプロンプトポップアップで要求しますが、これは1回限りのプロセスであり、手動で行ったので問題ありません

私が使用した開発者証明書については

Process.Start("makecert.exe",certCmd);

次のようcertCmdstring

makecert.exe ^
-n "CN=%1" ^
-iv CARoot.pvk ^
-ic CARoot.cer ^
-pe ^
-a sha512 ^
-len 4096 ^
-b 01/01/2014 ^
-e 01/01/2016 ^
-sky exchange ^
-eku 1.3.6.1.5.5.7.3.2 ^
-sv %1.pvk ^
%1.cer

pvk2pfx.exe ^
-pvk %1.pvk ^
-spc %1.cer ^
-pfx %1.pfx ^
-po Test123

ドキュメントによると-po、上記のコマンドで指定されたパラメーターはなく、その結果、ここで問題となるプロンプトでパスワードを要求します

これは API であるため、秘密鍵のプロンプトでパスワードを入力する方法はありません。

もう1つのオプションは使用することですがX509Certificate2bouncyCastleそれらの使用方法がわからない場合は、どんな助けでもかなりの価値があります

できるだけシンプルに保ちたいので、それが私が選んだ理由makecert.exeですProcess.Start()

4

3 に答える 3