証明書が取り消された場合、それを元に戻すことはできますか、それとも新しい証明書を生成する唯一のオプションですか?
取り消す唯一のオプションは、証明書がcertificateHold
の理由で取り消される場合です( RFC5280の5.3.1 )。それ以外の場合はすべて、証明書(およびキー)を再作成する必要があります。
TL; DR:許可されていません。技術的に不可能ではありません。
保持されている証明書について話していないと仮定すると、いったん取り消された証明書が取り消されないという規則には違反します。
失効した証明書の取り消しをCAに依頼した場合、CAは拒否する必要があり、おそらく不可能であることを伝えます。
ただし、ウェブ検索を行うと、CAの取り消されていない証明書のストーリーが見つかる場合があります。
彼らはそうすべきではありませんが、それは(どうやら)起こります。
CAは、最終的には、多くの証明書と、取り消されたかどうかなど、各証明書のステータスに関するメタデータを含むデータベースです。
CAは定期的または不定期にそのデータベースを解析し、CRL(失効した証明書のリスト)を生成します。
証明書がそのリストにある場合、それは取り消されます。 (クライアントが常にリストをチェックするわけではありませんが、それは別の問題です。)
失効する証明書のレコードを削除するようにデータベースが変更された場合、失効した証明書のリストが次に生成されるとき、証明書はその証明書の1つではありません。実際には、証明書は取り消されません。
これは決して起こらないはずです。しかし、技術的に不可能ではありません。
たとえば、 https://hackernoon.com/godaddy-revoked-and-then-un-revoked-a-certificate-without-request-11f86074bbf8 を参照してください
新しいものを作成します。通常、失効した証明書を取り消すよりも、新しい証明書を発行する方が簡単です。
証明書の失効は、その証明書に関するメタデータにのみ影響しますが、証明書に関する変更は一切ありません。クライアントが失効チェックを実行しない場合(CRLやOCSPを使用するなど)、失効した証明書は信頼できるものとして表示される場合があります。
ほとんどのパブリックCAの場合、失効は機能します。これは、CAが証明書のステータス情報も提供し、失効する場所でもあるため、その証明書が変更されていなくても、あらゆる価値のあるX.509クライアントがあるためです。また、その証明書のステータスをチェックして、証明書が取り消されていることを確認し、信頼を拒否します。