次の情報についてユーザーからの入力を受け取るAPIサーバーを開発しています
"CN=ABC123,O=DEF,L=XYZ,S=CA,C=US,E=info@abc.com"
ルート証明書を使用して、署名済みの開発者証明書を作成します。使用して証明書を作成するために、開発チュートリアル用にmakecert.exe
makecert.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);
次のようcertCmd
にstring
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つのオプションは使用することですがX509Certificate2
、bouncyCastle
それらの使用方法がわからない場合は、どんな助けでもかなりの価値があります
できるだけシンプルに保ちたいので、それが私が選んだ理由makecert.exe
ですProcess.Start()