web-dev-qa-db-ja.com

SSL証明書が機能しなくなることがあります

時々、ほとんどが夜間に、SSL証明書が機能しなくなることがあります。この障害に伴うエラーは次のとおりです。

SSLサーバーの資格情報にアクセスしようとしたときに致命的なエラーが発生しました秘密鍵。暗号化モジュールから返されるエラーコードは0x8009030dです。内部エラー状態は10001です。

現時点でこれを解決するには、障害のあるWebサイトのSSLバインディングを別のサイトに変更し、保存してから元に戻します。そうすれば、証明書が再び取得されて機能します(魔法)。

問題は次のとおりです。これを防ぐにはどうすればよいですか?これが発生するたびに(現在は過去6か月に2回)、サイトがダウンしています。

7
Gecko IT

私が見つけた記事は問題を解決しました: https://techcommunity.Microsoft.com/t5/iis-support-blog/error-hresult-0x80070520-when-adding-ssl-binding-in-iis/ba- p/377281

参考までに、3つのオプションすべてを確認しました。

このエラーが再び発生する場合は、ここに投稿します。

6
Gecko IT

私もこの問題を抱えています。私のサーバーサービスは、使用中は何時間も正常に機能していましたが、電話をかけずに45分間放置すると、このエラーが発生しました。そのため、何らかのタイムアウトまたはその他の有効期限が発生しました。私は自分のサービスを監視するためのユーティリティを作成しましたが、もちろんそれはそれを存続させました。そこで時間を調整して、失敗する期間を見つけました。使用したすべてのWeb参照を再検討したところ、 paulstovell.com の記事を読み直すと、PersistKeySetプロパティが言及されていることがわかりました。これを含むように証明書を準備するコードを変更すると、次のようになります。

  X509Certificate2 cert = new X509Certificate2(file, password, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable); 

は問題を修正し、証明書の有効期限が切れたり、0x8009030dエラーでタイムアウトしたりすることはなくなりました。そしてもちろん、これは理にかなっています。エラーはキーがないことに関するものであり、それを永続化することが必要なことです。

http://paulstovell.com/blog/x509certificate2

2
mj2008