web-dev-qa-db-ja.com

証明書ストアにSSL証明書をインストールしましたが、IIS証明書リストにありません

ワイルドカードSSL証明書を証明書ストアにインストールした後、サイトバインドで使用するための証明書はIIS証明書リストに表示されません。

証明書は正しくインストールされましたが、明らかに証明書にキーが含まれていませんでした。

新しいリクエストを実行したり、キーについて誰かに連絡したりすることなく、この問題を修正するにはどうすればよいですか(たとえば、発売の前日である場合は;-))

47
jedd.ahyoung

今日、この問題に遭遇しました。期間とその他の問題のため、プロバイダーからキーを取得することはできませんでした。

私は次の解決策を見つけました here (pixelloaのコメントの下)とStack Overflowについても答えがあるといいと思いました。

証明書に秘密キーがない場合は、次を実行してこれを修正できます。

これを修正するには、MMCスナップインを使用して証明書をPERSONALにインポートし、クリックしてシリアル#行を取得します。 DOSに移動し、certutil -repairstore my "ここにシリアル番号を貼り付けてください"(引用符が必要です)を実行し、MMCを個人証明書で更新し、右クリック-エクスポート-プライベートキーの削除以外を選択して、ヒットOK。次に、終了要求の代わりにIISおよびIMPORT証明書に移動します。

価値のあることのために、私が実際にやらなければならなかったのは、certutil -repairstoreコマンドを実行するだけで、証明書は機能しました。エクスポートを実行し、エクスポート自体のパスワードを設定しましたが、証明書を再インポートする必要はありませんでした。証明書はIISの証明書リストに表示され、HTTPSバインディングに使用できます。

これが誰かの助けになることを願っています。

54
jedd.ahyoung

上記の回答からインスピレーションを得て、同じ問題を抱え、簡単な解決策を見つけました。以下に、ステップごとの簡単な要約を示します。

  1. 証明書プラグインで最初にMMCを開きます。
  2. 新しい証明書(証明書アイコンの左上にあるキーがない)を「個人用」証明書ストアにドラッグアンドドロップします。これは、「Web Hosting」ストアの名前がストアの実際の名前ではなく、いわゆるフレンドリ名であり、コマンドプロンプトユーティリティcertutilに必要な実際の名前を思い出せなかったためです。 。代わりに、「個人」の本当の名前が「私の」であることを思い出しました。残りの作業は簡単になり、完了したら証明書を「Web Hosting」に戻すだけです。
  3. 新しい証明書(キーが見つからない)が「個人」ストアに格納されたら、コマンドプロンプトを起動して、次のコマンドを発行します。certutil -store "My"(引用符が必要と仮定)
  4. 証明書のシリアル番号をメモします。証明書ダンプの最初の行にあります。 「マイ」ストアに他の証明書がある場合は、移動したばかりの証明書を見つける必要があります。たとえば、有効期限と名前を見てください。シリアル番号をマークしてコピーします。
  5. コマンドcertutil -repairstore "My"<ここにシリアル番号を貼り付け>を発行し、秘密鍵が確認済み。
  6. 証明書を「Webホスティング」ストアに戻し、更新します。これで、証明書のアイコンが左上部分に小さな鍵のアイコンでオーバーレイ表示されます。
  7. これで、IISバインディングダイアログ内から証明書を選択できるようになります。

楽しんで!

13
Søren L. Fog

認証局としてGodaddyを使用していて、この問題に直面している場合; 証明書のキーを再生成するだけです。上記のcertutil -repairstoreで「ここにシリアル番号を貼り付け」を試しましたが、システムは認証にスマートカードを使用することを望んでいました。 (サーバー2016および2012R2でIIS10を実行)

証明書要求を作成し、キー再生成のプロセスを経て、「証明書要求の完了」のプロセスを経ると、証明書が消えることなく「バインディング...」を正常に構成できました。

7
Konrad13

証明書が正常にインストールされたサーバーがある場合、別のサーバーのIISからpfxをエクスポートできます。

更新:

別のラウンドの証明書の更新(更新)に取り組んで、試したすべてのサーバーでこの問題に再び遭遇しました。 @Geirの答えはうまくいきませんでしたが、アイデアが得られました。証明書要求を生成したサーバーを特定し、そこに新しい証明書を正常にインストールしました。そのサーバーからpfxをエクスポートし、残りのサーバーにpfxバージョンをインポートすることができました。証明書リクエストをやり直す必要はありません。

5
mobill

同じ問題があった。

「CSR」ファイルを作成したサーバーと同じサーバーにインストールしていることを確認する必要があります。それ以外の場合、秘密鍵はありません。

証明書を取得した場合は、キーの再生成を要求するだけで、新しいCSRファイルを要求します。つまりGo Daddyを使用すると、キーを再生成し、証明書を見つけて「管理」を押すことができます。

私はこの点については専門家ではありませんが、これでうまくいきました。

4
Arvin Amir

解決するには、プライベート証明書(PFX)をインポートする必要があります。

PFXがない場合は、OpenSSLを使用して生成します。

  • OpenSSLのダウンロードとインストール
  • コマンドラインを開いて実行します:

    openssl pkcs12 -export -in public_certificate.cer -inkey server.key -out private_certificate.pfx

より、private_certificate.pfxをインストールします(右クリック-> Install Certificate)。

これで、証明書は消えなくなり、SSL経由でWebサイトをバインドできます。

すばらしいリソース: https://blog.lextudio.com/the-whole-story-of-server-certificate-disappears-in-iis-7-7-5-8-8-5-10- 0-after-installing-it-why-b66e802baa38

3
walter

これは、たとえば古い証明書要求を承認した後、新しい証明書要求を生成します。新しいリクエストにより、IISがfirst証明書リクエストに関連付けられた秘密鍵を削除するため、最初のリクエストに関連付けられた(現在署名済みの)証明書をインポートすると、秘密鍵が関連付けられていません。秘密キーがないため、SSLバインディングに使用できず、IISマネージャーには表示されません。

秘密鍵はコンピューターの複数の場所に保存されているため、復元できる場合があります。

  1. スタート-> mmc.exe->スナップインの追加->証明書->コンピューターアカウント。インストールされた証明書が[個人/証明書]タブに表示されることを確認します。そうでない場合は、インポートします。欠落している秘密鍵は、証明書の隣のアイコンで視覚化されますnot鍵アイコンが含まれています。
  2. ディスクから証明書(.cer)ファイルをダブルクリックして開きます。 [詳細]タブで、シリアル番号をメモします。
  3. スタート-> cmd.exe。 「certutil -repairstore my(serialnumberhere)」と入力します。シリアル番号にはスペースを入れないでください。 8桁以上になる可能性があります。

Certutilコマンドが「-repairstoreコマンドが正常に完了しました」と返された場合、証明書の秘密キーが復元されている可能性があります。これを確認するには、MMC証明書リストに移動してF5を押します。成功すると、証明書のアイコンに小さなキーが表示されます。その後、IISから証明書を選択できます。

これが失敗した場合、秘密鍵は使用できなくなり、新しい証明書署名要求を署名機関に送信する必要があります。

2
Geir Smestad

私は同様の問題を抱えており、可能な組み合わせをすべて試してみました。最後に、数クリックで証明書をインストールするのに役立つDigiCert SSL Utilityを見つけました。 ここからダウンロードできます 。この回答が他の人の時間を節約することを願っています。

1
Denys Denysenko

これは、インストールされた証明書に秘密鍵が含まれていない場合に発生します。

証明書に秘密キーが含まれているかどうか、およびその修復方法を確認するには、このNice Entrust提供のチュートリアル を使用します

1
Ivo Stoyanov

IIS 10でも同じでした。

IISマネージャーを使用して.pfxファイルをインポートすることで修正しました。

サーバールート(sites-nodeの上)を選択し、右側のペインで[サーバー証明書]をクリックして、そこにpfxをインポートします。次に、サイトの下のWebサイトのSSLバインディングを作成するときにドロップダウンから選択できます

1
Arjan

ここに1つの証明書と2つの異なるWebサーバーがある場合、私はそれをどのように修正しましたか:

  1. リストアイテム
  2. 通常IISのように、サーバーの1つで証明書を生成する必要があります。その後、そのサーバーでIISで証明書を完成させることもできます。
  3. プログラムDigiCertUtilを実行し、その作業証明書をエクスポートします
  4. セキュリティ証明書のIISにある他のWebサーバーに移動しますステップ3からそのファイルをインポートします。
  5. 次に、その証明書を使用してバインディングを作成します。
1
Nina Kyriakidou

問題は、証明書要求(CSR)がIISから生成されなかったことです。 OpenSSLなどの他のソースから生成した場合、問題が発生します。 IISから証明書要求(CSR)を生成する必要があります->証明書要求を作成し、すべての詳細を入力して、SSL証明書の再生成のためにベンダーに送信します。その後、鉱山は適切に機能しました。

1
Ronald