TLS 設定生成ツール
サーバーとそのバージョンを選び、プロファイルを選択すると、Mozilla のガイドラインを引き継ぐ TLSRef の Server Side TLS ガイドラインに基づいた設定をコピーできます。ポスト量子の X25519MLKEM768 は、サーバーのバージョンで指定できる場合には必ず有効になります。すでに運用中の設定がある場合は、「設定を解説」に貼り付けてください。
100% ローカル:すべてブラウザー内で処理され、どのサーバーにも何も送信されません
空欄の場合は、現行リリースの 1.30.6 を使用します。
サーバーのビルドに使われている OpenSSL です(openssl version の出力)。空欄の場合は、長期サポート系列の 3.5.9 を使用します。
サーバーのバージョンで指定できないグループは除外され、その理由は下の注記に示されます。
ブラウザーに、2 年間は HTTPS のみを使用するよう指示します。
CA が OCSP レスポンダーをまだ運用している場合にのみ役立ちます。
ポスト量子鍵交換が有効です。この設定では X25519MLKEM768 を指定しています。
# ecdsa.com が TLSRef ガイドライン 6.0、中間プロファイルに基づいて生成:nginx 1.30.6(OpenSSL 3.5.9)
# オプション:HSTS
http {
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
# HTTP Strict Transport Security(63,072,000 秒、ngx_http_headers_module が必要)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
}
# 中間プロファイルの設定
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519MLKEM768:X25519:prime256v1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
# ssl_session_ticket_key は共有セッションキャッシュの代替手段です
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # 約 40,000 セッション
# 平文の HTTP を HTTPS にリダイレクトします
server {
listen 80 default_server;
listen [::]:80 default_server;
return 308 https://$host$request_uri;
}
}
この設定の内容
- ソフトウェア
- nginx · 1.30.6 · OpenSSL 3.5.9
- プロファイル
- 中間、TLSRef ガイドライン 6.0
- プロトコル
- TLSv1.2, TLSv1.3
- TLS 1.3 の暗号スイート
- TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256
- TLS 1.2 の暗号スイート
- ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305
- 鍵交換グループ
- X25519MLKEM768, x25519, secp256r1, secp384r1
- HSTS
- max-age 63,072,000 秒
- OCSP ステープリング
- オフ
- 対応する最古のクライアント
- Firefox 31.3.0, Android 4.4.2, Chrome 49, Edge 15 on Windows 10, IE 11 on Windows 10, Java 8u161, OpenSSL 1.0.1l, Opera 20, Safari 9
注記
- 問題なしポスト量子鍵交換を設定しました:X25519MLKEM768。
- 警告includeSubDomains 付きの HSTS を設定すると、ブラウザーは 63,072,000 秒間、すべてのサブドメインで平文の HTTP を拒否します。デプロイする前に、すべてのサブドメインが HTTPS で配信されていることを確認してください。
- 情報証明書の鍵の種類:ECDSA、RSA。
- 情報ECDSA 証明書の曲線:P-256、P-384。
- 情報RSA 証明書:2,048 ビット以上。
- 情報証明書の有効期間:推奨は 90 日、ガイドライン上の上限は 366 日。
- 情報対応する最古のクライアント:Firefox 31.3.0、Android 4.4.2、Chrome 49、Edge 15 on Windows 10、IE 11 on Windows 10、Java 8u161、OpenSSL 1.0.1l、Opera 20、Safari 9。
出典とライセンス
設定は、TLSRef の Server Side TLS ガイドライン 6.0(旧式プロファイルは 5.8)と、April King、Gene Wood、Julien Vehent、Glenn Strauss およびコントリビューターによる TLS Configurator(Mozilla の SSL Configuration Generator の後継)のロジックに従っています。ガイドラインのデータと移植した Configurator のコードは Mozilla Public License 2.0 に基づいて使用し、別ファイルとして保持しています。移植したコードに対する当サイトの変更も、同じライセンスで公開しています。
Node.js、Java、.NET とシステム全体の OpenSSL の設定は、同じガイドラインに基づいて ecdsa.com が作成しています。
Where the settings come from
Every configuration on this page follows the TLSRef Server Side TLS guidelines, the community continuation of Mozilla's Server Side TLS guidelines. Guideline 6.0 defines two profiles. Modern allows TLS 1.3 only (RFC 9846, the 2026 revision of RFC 8446) and suits services whose clients are all from 2018 or later. Intermediate adds TLS 1.2 with forward-secret ECDHE and AEAD cipher suites only, and is the right default for almost every public server. The old profile, with TLS 1.0 and 1.1, was dropped in 6.0; the generator takes it from guideline 5.8, as the upstream TLS Configurator does, and says so in the output. TLS 1.0 and 1.1 have been deprecated since RFC 8996, so use the old profile only for clients that cannot do better.
The server templates are a port of the TLS Configurator, the successor of Mozilla's SSL Configuration Generator, covering 24 servers. Node.js, Java, .NET and the system-wide OpenSSL configuration are written by ecdsa.com on the same guidelines, which brings the total to 28. The guideline data and the ported code are licensed under the Mozilla Public License 2.0 and kept in separate files, as that license requires; the attribution under the tool links to both.
Why the version matters
A configuration must parse on the software that loads it. nginx learned http2 on in 1.25.1; Apache staples OCSP
only from 2.4.13; OpenSSL 3.0 refuses TLS 1.0 unless the security level is lowered to 0. The generator knows these
thresholds for every server, starts from the current release of each product, and adapts the output when you enter
an older version. A version that cannot do what the profile asks — the modern profile on a server without TLS 1.3,
say — produces an explanation instead of a configuration that would not start.
Post-quantum key exchange
Guideline 6.0 puts X25519MLKEM768 first in every profile. It is the hybrid of ML-KEM-768 and X25519 standardized in RFC 10024, and current browsers and CDNs negotiate it by default. A group list that names a group the software cannot parse makes many servers refuse to start, while a list that leaves it out silently turns post-quantum key exchange off. So the generator writes the group only where the version can name it: OpenSSL 3.5 for nginx, Apache, HAProxy and the other OpenSSL-based servers, Go 1.24 and Caddy 2.10, Traefik 3.5, JDK 27 for Java servers, Node.js 24.5 or 22.20. Where a server cannot name groups but its library offers the hybrid by default, the configuration keeps that default, and the result says which case applies. The "all hybrids" option adds SecP256r1MLKEM768 and SecP384r1MLKEM1024, built only from NIST-approved components, for servers that need them. How the hybrid works inside the handshake is shown step by step in the illustrated TLS 1.3 handshake and explained in X25519MLKEM768 explained.
HSTS and OCSP stapling
HSTS (RFC 6797) is on by default with a two-year
max-age and includeSubDomains, which makes browsers refuse plain HTTP on every subdomain; the notes remind you to
check that all of them serve HTTPS. OCSP stapling is off by default: since ballot
SC-063 publicly trusted CAs may stop running OCSP responders, and a certificate without an OCSP URL cannot be stapled.
The notes also carry the guideline's certificate advice and the maximum lifetime of public certificates on the day
you generate the configuration (CA/B Forum ballot SC-081) — see the
47-day certificate calculator for the full schedule.
Explain my config
The second tab reads an nginx or Apache httpd configuration you already run. It follows server blocks and virtual
hosts, applies inheritance from the http block or the server configuration, fills unset directives with the
defaults of your nginx or httpd version, and evaluates cipher strings the way OpenSSL 3 builds its list, so
HIGH:!aNULL turns into the exact suites a client may be offered. Findings are graded from critical (SSLv3,
compression, a stapling setup that keeps httpd from starting) to informational, each with its line number. Include
files are not followed: paste them too if they hold TLS settings.
What stays on your machine
Both modes run entirely in your browser; the page sends nothing anywhere. Configurations name the paths of the
certificate and key files, never their contents, and the explainer refuses a pasted private key. A share link puts
the settings — or the pasted configuration — after the # of the address, which browsers never send to a server.
The settings line inside a generated configuration is the same kind of link.
To see what your browser negotiates today, use the post-quantum browser check; to check deployed servers, the bulk domain checker. The differences between the protocol versions are compared in TLS 1.2 vs TLS 1.3 and X25519MLKEM768 vs X25519.