SSL/TLS通信使用時にTLS1.3のみ有効にさせる方法について updated!

E-PostシリーズのSSL/TLS暗号化通信については、openssl のライブラリを使用しています。openssl のライブラリはデフォルトでのコンパイルであり、デフォルトに含まれている暗号化方式はすべて利用可能な状態となっています。メールサーバの暗号化通信のセキュリティを高めるため、旧来のSSLを禁止するだけにとどまらず、TLSのバージョンまで限定する必要があるときには、以下のように行います。

E-Post Mail Server / E-Post SMTP Serverシリーズに実装されているSMTP受信サービス・SMTP配送サービスでのSSL/TLS暗号化通信においてTLSのバージョンまで限定する必要があるとき、2018年12月以降の最新差分アップデート適用で openssl のライブラリが openssl 1.1.1系となり、さらに2023年9月以降は openssl 3.x系 となります。これらのバージョン以降、下記にあげた SecureLayOption 設定により、TLS1.3での通信のみ有効にさせることが可能になります。

なお、openssl のライブラリバージョンが openssl 3.x系に変更されていて、2024.05.25(2024.06.20公開)以降の差分アップデートが適用されていれば、SecureLayOption 以外に SecureLevel という値を設定する方法もあります。こちらは通信のセキュリティを強化するためのポリシーを簡単に設定できる仕組みです。具体的には、暗号化アルゴリズムや鍵の強度、プロトコルのバージョンなどに関する最低基準を定義します。これにより、セキュリティ要件を満たさない接続を拒否することができます。詳細は下記レジストリ項目と設定値を参照してください。
それから上記に対応できる openssl.exe を組み込んだ SSL-Key-SHA2a.zipもしくはSSL-Key-SHA2.zip をダウンロードして "CERTIFICATE.BAT" バッチファイルから「公開鍵証明書」と「秘密鍵」を作成しておくようにしてください。

EPSTRSについて、TLS1.3での通信のみ有効にする方法は下記のレジストリを設定します。レジストリに SecureLayOption エントリ値がない場合は Default:3 で扱われており SSL2.0 及び SSL3.0 の使用は無効です。TLS1.3 のみ有効にさせる設定を行うためには、SecureLayOption に 31(10進)〔1f(16進)〕を設定、EPSTRS サービスの再起動を行う手順です。この設定が有効なのは、2018.12.24(2019.1.24公開)以降の差分アップデートが適用されていて、EPSTRS v4.A2以降になっていることが必要です。
次にもう一つの設定方法です。レジストリに SecureLevel エントリ値がない場合は、Default:0 で扱われ レベル0(SecureLevel=0)に設定されていて、TLS1から1.3までが有効範囲です。レベル1(SecureLevel =1)に変更すると、TLS1.2、TLS1.3 のみ有効となります。この設定が有効なのは、2024.05.25(2024.06.20公開)以降の差分アップデートが適用されていて、EPSTRS v4.AI以降になっていることが必要です。
E-Postシリーズでは、レジストリにエントリ値自体がなければDefault値が適用されるという動きになっています。手動でエントリ値を作成、その後値を入力してください。
[EPSTRS]
HKEY_LOCAL_MACHINE
 SYSTEM
  →CurrentControlSet
   →Services
    →EPSTRS
     →SecureLayOption  v4.A2〜
     (DWORD Default:3) 1:SSL2.0禁止 2:SSL3.0禁止 3:SSL2.0-3.0禁止(SSL3.0以前禁止) 4:TLS1.0禁止
      7:TLS1.0,SSL2.0-3.0禁止(TLS1.0以前禁止) 8:TLS1.1禁止 15:TLS1.1以前禁止 16:TLS1.2禁止 31:TLS1.2以前禁止
     ※10進指定によるもの。"31"の指定でTLS1.2以前が禁止となり、TLS1.3以降のみの許可となる。
      ちなみに"15"の指定でTLS1.1以前が禁止、TLS1.2以降の許可となる。
     →SecureLevel  v4.AI〜
     (DWORD default:0)(レベル:0〜5)SSL_CTX_set_security_levelの設定に相当
     ※いずれも変更後のサービス再起動が必要。
EPSTDSについて、TLS1.3での通信のみ有効にする方法は下記のレジストリを設定します。レジストリに SecureLayOption エントリ値がない場合は Default:3 で扱われており SSL2.0 及び SSL3.0 の使用は無効です。TLS1.3 のみ有効にさせる設定を行うためには、SecureLayOption に 31(10進)〔1f(16進)〕を設定、EEPSTDS サービスの再起動を行う手順です。この設定が有効なのは、2018.12.24(2019.1.24公開)以降の差分アップデートが適用されていて、EPSTDS v4.67以降になっていることが必要です。
次にもう一つの設定方法です。レジストリに SecureLevel エントリ値がない場合は、Default:0 で扱われ レベル0(SecureLevel=0)に設定されていて、TLS1から1.3までが有効範囲です。レベル1(SecureLevel =1)に変更すると、TLS1.2、TLS1.3 のみ有効となります。この設定が有効なのは、2024.05.25(2024.06.20公開)以降の差分アップデートが適用されていて、EPSTDS v4.81以降になっていることが必要です。
E-Postシリーズでは、レジストリにエントリ値自体がなければDefault値が適用されるという動きになっています。手動でエントリ値を作成、その後値を入力してください。
[EPSTDS]
HKEY_LOCAL_MACHINE
 SYSTEM
  →CurrentControlSet
   →Services
    →EPSTDS
     →SecureLayOption  v4.67〜
     (DWORD Default:3) 1:SSL2.0禁止 2:SSL3.0禁止 3:SSL2.0-3.0禁止(SSL3.0以前禁止) 4:TLS1.0禁止
      7:TLS1.0,SSL2.0-3.0禁止(TLS1.0以前禁止) 8:TLS1.1禁止 15:TLS1.1以前禁止 16:TLS1.2禁止 31:TLS1.2以前禁止
     ※10進指定によるもの。"31"の指定でTLS1.2以前が禁止となり、TLS1.3以降のみの許可となる。
      ちなみに"15"の指定でTLS1.1以前が禁止、TLS1.2以降の許可となる。
     →SecureLevel  v4.81〜
     (DWORD default:0)(レベル:0〜5)SSL_CTX_set_security_levelの設定に相当
     ※いずれも変更後のサービス再起動が必要。
E-Post Mail Serverシリーズに実装されているPOP3サービス・IMAP4サービスでのSSL/TLS暗号化通信においてTLSのバージョンまで限定する必要があるとき、2018年12月以降の最新差分アップデート適用で openssl のライブラリが openssl 1.1.1系となり、さらに2023年9月以降は openssl 3.x系 となります。このバージョン以降、TLS1.3での通信のみ有効にさせることが可能になります。

EPSTPOP3Sについて、TLS1.3での通信のみ有効にする方法は下記のレジストリを設定します。レジストリに SecureLayOption エントリ値がない場合は Default:3 で扱われており SSL2.0 及び SSL3.0 の使用は無効です。TLS1.3 のみ有効にさせる設定を行うためには、SecureLayOption に 31(10進)〔1f(16進)〕を設定、EPSTPOP3S サービスの再起動を行う手順です。この設定が有効なのは、2018.12.24 (2019.1.24公開)以降の差分アップデートが適用されていて、EPSTPOP3S v4.43以降になっていることが必要です。
次にもう一つの設定方法です。レジストリに SecureLevel エントリ値がない場合は、Default:0 で扱われ レベル0(SecureLevel=0)に設定されていて、TLS1から1.3までが有効範囲です。レベル1(SecureLevel =1)に変更すると、TLS1.2、TLS1.3 のみ有効となります。この設定が有効なのは、2024.05.25(2024.06.20公開)以降の差分アップデートが適用されていて、EPSTPOP3S v4.50以降になっていることが必要です。
E-Postシリーズでは、レジストリにエントリ値自体がなければDefault値が適用されるという動きになっています。手動でエントリ値を作成、その後値を入力してください。
[EPSTPOP3S]
HKEY_LOCAL_MACHINE
 SYSTEM
  →CurrentControlSet
   →Services
    →EPSTPOP3S
     →SecureLayOption  v4.43〜
     (DWORD Default:3) 1:SSL2.0禁止 2:SSL3.0禁止 3:SSL2.0-3.0禁止(SSL3.0以前禁止) 4:TLS1.0禁止
      7:TLS1.0,SSL2.0-3.0禁止(TLS1.0以前禁止) 8:TLS1.1禁止 15:TLS1.1以前禁止 16:TLS1.2禁止 31:TLS1.2以前禁止
     ※10進指定によるもの。"31"の指定でTLS1.2以前が禁止となり、TLS1.3以降のみの許可となる。
      ちなみに"15"の指定でTLS1.1以前が禁止、TLS1.2以降の許可となる。
     →SecureLevel  v4.50〜
     (DWORD default:0)(レベル:0〜5)SSL_CTX_set_security_levelの設定に相当
     ※いずれも変更後のサービス再起動が必要。
EPSTIMAP4Sについて、TLS1.3での通信のみ有効にする方法は下記のレジストリを設定します。レジストリに SecureLayOption エントリ値がない場合は Default:3 で扱われており SSL2.0 及び SSL3.0 の使用は無効です。TLS1.3 のみ有効にさせる設定を行うためには、SecureLayOption に 31(10進)〔1f(16進)〕を設定、EPSTIMAP4S サービスの再起動を行う手順です。この設定が有効なのは、2018.12.24(2019.1.24公開)以降の差分アップデートが適用されていて、EPSTIMAP4S v4.59以降になっていることが必要です。
次にもう一つの設定方法です。レジストリに SecureLevel エントリ値がない場合は、Default:0 で扱われ レベル0(SecureLevel=0)に設定されていて、TLS1から1.3までが有効範囲です。レベル1(SecureLevel =1)に変更すると、TLS1.2、TLS1.3 のみ有効となります。この設定が有効なのは、2024.05.25(2024.06.20公開)以降の差分アップデートが適用されていて、EPSTIMAP4S v4.70以降になっていることが必要です。
E-Postシリーズでは、レジストリにエントリ値自体がなければDefault値が適用されるという動きになっています。手動でエントリ値を作成、その後値を入力してください。
[EPSTIMAP4S]
HKEY_LOCAL_MACHINE
 SYSTEM
  →CurrentControlSet
   →Services
    →EPSTIMAP4S
     →SecureLayOption  v4.59〜
     (DWORD Default:3) 1:SSL2.0禁止 2:SSL3.0禁止 3:SSL2.0-3.0禁止(SSL3.0以前禁止) 4:TLS1.0禁止
      7:TLS1.0,SSL2.0-3.0禁止(TLS1.0以前禁止) 8:TLS1.1禁止 15:TLS1.1以前禁止 16:TLS1.2禁止 31:TLS1.2以前禁止
     ※10進指定によるもの。"31"の指定でTLS1.2以前が禁止となり、TLS1.3以降のみの許可となる。
      ちなみに"15"の指定でTLS1.1以前が禁止、TLS1.2以降の許可となる。
     →SecureLevel  v4.70〜
     (DWORD default:0)(レベル:0〜5)SSL_CTX_set_security_levelの設定に相当
     ※いずれも変更後のサービス再起動が必要。
(参考)
SecureLevel について [OpenSSL ドキュメント3.0](英語)
https://docs.openssl.org/3.0/man3/SSL_CTX_set_security_level/#default-callback-behaviour

(関連FAQ)
SMTP/POP3/IMAP4 over SSL/TLS設定方法
SSL/TLS設定で認証局が発行するSHA2(sha256)の証明書に対応しているか
opensslコマンドでTLSバージョンを指定して疎通確認する方法について