[12] error alert は、 TLS における誤りを通知するメッセージです。
[2] TLS Handshake protocol では、誤りを検出したら、相手に対してメッセージを送信します >>1。誤りには致死的なものと、そうでないものがあります。 fatal alert と定義されている条件に遭遇したら、接続を閉じる前に適切な alert を送信しなければなりません >>1。 alert level が明示的に規定されていない誤りについては、 誤りの送信者が fatal か否かを決定できます >>1。 alert を送信する場合で、 その直後に接続を閉じるつもりの場合は、 fatal alert level で alert を送信しなければなりません >>1。
[3] fatal alert message を送信または受信したら、直ちに接続を閉じます。 鯖およびクライアントは、失敗した接続に関するセッション識別子、鍵、秘密をすべて忘れなければなりません。 よって fatal alert によって終了した接続を再開してはなりません。 >>1
[4] alert level が警告の alert を送信または受信したら、通常は接続は通常通り継続できます。 受信者が接続を継続しないことにした場合は、接続を終える fatal alert を送信するべきです。 >>1
certificate_expired alert は送信しません。 >>1[19] Firefox は証明書エラーで fatal alert を送った後、 RST
するようです。 Chrome は普通に FIN で閉じるようです。
[6] error alert の種類には次のものがあります。
unexpected_message (10)bad_record_mac (20)decryption_failed_RESERVED (21)record_overflow (22)decompression_failure (30)handshake_failure (40)no_certificate_RESERVED (41)bad_certificate (42)unsupported_certificate (43)certificate_revoked (44)certificate_expired (45)certificate_unknown (46)illegal_parameter (47)unknown_ca (48)access_denied (49)decode_error (50)decrypt_error (51)export_restriction_RESERVED (60)protocol_version (70)insufficient_security (71)internal_error (80)user_canceled (90)no_renegotiation (100)unsupported_extension (110)inappropriate_fallback (86)user_canceled (90)certificate_unobtainable (111)unrecognized_name (112)bad_certificate_status_response (113)bad_certificate_hash_value (114)unknown_psk_identity (115)no_application_protocol (120)[8] close_notify (0) は closure alert に分類されていて、
error alert とは別の処理が規定されています。
[13] TLS を使うアプリケーション層プロトコルは、 TLS の接続が誤りにより閉じられた際の処理 (何らかの方法で復帰する、更に上位の層に誤りを通知するなど) を規定する必要があります。
[17] Web Security Context: User Interface Guidelines ( 版) <http://www.w3.org/TR/wsc-ui/#sec-tlserrors>
[18] OpenSSL (OpenSSL Foundation, Inc. 著, 版) <https://www.openssl.org/docs/manmaster/ssl/SSL_alert_type_string.html>