web-dev-qa-db-ja.com

テスト用に.cerを作成しようとすると、失敗し続けるのはなぜですか?

テスト用の証明書を作成しようとしていますが、このサイトを使用しています方法:独自のテスト証明書を作成する方法に関するチュートリアルですが、パスワードを作成した後にパスワードを入力すると、コマンドプロンプトで失敗したと表示されます。なぜですか。

私がしたこと:

まず、コマンドプロンプトを開き、次のように入力します。

  cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

次に、入力します

  makecert -sv myPrivateKeyFile.pvk -n "TestCert" myCertFile.cer -b 01/01/2011 -e 01/01/2015 -r

次に、パスワードを作成し、sencondポップアップボックスにパスワードを入力すると、コマンドプロンプトで失敗したと表示されます

これをもう一度入力すると、今回は最初にパスワードを要求するポップアップが表示され、入力すると次のように表示されます。

エラー:CryptCertStrToNameWが失敗しました=> 0x80092023(-2146885597)

    makecert -sv myPrivateKeyFile.pvk -n "TestCert" myCertFile.cer -b 01/01/2011 -e 01/01/2015 -r
26
Shredder2500

このエラーが発生した理由は、実行時にcmdを右クリックしなかったためです。したがって、この問題が発生した場合は、cmdを右クリックして管理者として実行し、問題が解決するかどうかを確認する必要があります。

4
Shredder2500

管理者としてプログラムを実行することで問題を解決しましたが、次のようなLDAPスタイルの証明書の名前も変更する必要がありました(CN = ...):

makecert -sv myPrivateKeyFile.pvk -n "CN=TestCert" myCertFile.cer -b 01/01/2011 -e 01/01/2015 -r
64
Renzo Ciot

これは私にとってちょっとしたショットガンデバッグでした。 makecert ガイドを読んだ後、これから始めました:

makecert.exe /b 01/01/2014 /e 01/01/2114 /len 256 /m 1200 /n "CN=In-House-Software" /pe /r /sr localMachine Test_Cert.cer

ここには2つのエラーの原因となる欠陥があります。

  1. /eおよび/m重複することは想定されていません。当たり前のように思えますが、彼らはそれを文書化したり、表現力豊かなエラーメッセージを作成したりしませんでした。
  2. /len 256は無効な値でした-低すぎます。これはまた、良いエラーメッセージであまり明白/文書化/表現されているようには見えませんでした。 512はうまくいきました。フロア値をわざわざ見つけることはしませんでしたが、デフォルトでは1024 使用されている。

私はこれをうまく使ってしまいました:

makecert.exe /b 01/01/2014 /e 01/01/2114 /len 512 /pe /r /n "CN=In-House-Software" /sr localMachine Test_Cert.cer

4

自己署名証明書のCA名を指定したときにもこのエラーが発生しました。つまり、「-cyauthority」オプションと「-r」オプションを指定した場合は、CA名を明示的に指定しないでください。 -nオプションによる名前。

3

何らかの理由で、Dropboxフォルダーからmakecertを正しく実行できませんでした。したがって、C:\などのソリッドディスクに移動して、再試行してください。

0
Armand G.