You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+42-20Lines changed: 42 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,11 +6,36 @@ This tool is built and deployed to https://ssl-config.mozilla.org/
6
6
7
7
To be notified when the Mozilla [Server Side TLS](https://wiki.mozilla.org/Security/Server_Side_TLS) configuration guidelines are updated (infrequent), use github notifications to subscribe to Releases on this repository (mozilla/ssl-config-generator).
8
8
9
-
To modify and build this tool locally, please read on:
9
+
To modify and build this tool locally, please see Installation and Development sections below.
10
10
11
+
## JSON guidelines
12
+
13
+
Each revision of the Mozilla Server Side TLS guidelines is published in a machine-readable format from this repository as a [JSON specification](/src/static/guidelines/) that can be found at [`/src/static/guidelines/`](/src/static/guidelines/) 📟
14
+
15
+
## Changelog
16
+
17
+
The [Changelog](/src/static/guidelines/CHANGELOG.md) that tracks the history of changes to Mozilla's configuration guidelines is available along the versioned JSON guideline files at [`/src/static/guidelines/CHANGELOG.md`](/src/static/guidelines/CHANGELOG.md) 🔬
18
+
19
+
## Contributing
20
+
21
+
The project is written in JavaScript, and uses Webpack for development and production builds.
22
+
23
+
We keep a list of things that would make a great contribution tagged with [*help wanted*](https://github.com/mozilla/ssl-config-generator/labels/help%20wanted), [*good first issue*](https://github.com/mozilla/ssl-config-generator/labels/good%20first%20issue), and [*new software support*](https://github.com/mozilla/ssl-config-generator/labels/new%20software%20support) labels.
24
+
25
+
If you'd like to see your favorite tool added or compatibility expanded, we're always happy to mentor a PR or receive a bug report to make the configs better for everyone.
26
+
27
+
Even when you don't feel comfortable contributing actual templates, posting some nice verified configs or compatibility hints is equally welcome! 💝
28
+
29
+
Get involved by sharing your ideas or joining the conversation in the [Discussions](https://github.com/mozilla/ssl-config-generator/discussions) tab. 🗨️
30
+
31
+
This repository is governed by Mozilla's [Community Participation Guidelines](/CODE_OF_CONDUCT.md)
32
+
so please make yourself familiar with it to get the idea of what level of developer etiquette and standards are expected across Mozilla projects.
11
33
12
34
## Installation
13
35
36
+
NodeJS and npm are required to install and run the project locally:
37
+
Node v22 is recommended and we use that in production, but the codebase may be compatible with other versions too.
38
+
14
39
```bash
15
40
$ npm install
16
41
```
@@ -20,7 +45,7 @@ $ npm install
20
45
Once you've installed, you can simply run:
21
46
22
47
```bash
23
-
$ npm run watch
48
+
$ npm start # or: npm run watch
24
49
```
25
50
26
51
This starts a local webserver that will automatically reload your changes.
@@ -58,54 +83,50 @@ All of the templates are written in javascript. The configuration generator sup
58
83
59
84
Highlighted items from src/js/state.js for use in templates. See src/js/state.js for more.
60
85
61
-
-`form.serverName` - Server Name
62
-
-`form.serverVersion` - Server Version
63
-
-`form.opensslVersion` - OpenSSL Version
86
+
-`form.serverName` - display name of the server
87
+
-`form.serverVersion` - requested server version
88
+
-`form.opensslVersion` - requested OpenSSL version
-`form.hsts` - HTTP Strict Transport Security form checkbox (boolean true/false)
66
91
-`form.ocsp` - OCSP Stapling form checkbox (boolean true/false)
67
92
68
93
-`output.header` - description of rendered config
69
94
-`output.link` - URL to rendered config
70
95
-`output.protocols` - protocol list (e.g. zero or more of: "TLSv1" "TLSv1.1" "TLSv1.2" "TLSv1.3")
71
-
-`output.ciphers` - cipher list
72
-
-`output.cipherSuites` - cipher suites list
96
+
-`output.ciphers` - TLSv1.2 (and older) cipher list
97
+
-`output.cipherSuites` - TLSv1.3+ cipher suites list
73
98
-`output.serverPreferredOrder` - enforce ServerPreference for ordering cipher list (boolean true/false)
74
99
-`output.hstsMaxAge` - max-age (seconds) for Strict-Transport-Security: max-age=... HTTP response header
75
100
-`output.hstsRedirectCode` - HTTP status code to use for HSTS redirect from http:// to https://
76
101
-`output.latestVersion` - server latest version
77
102
-`output.usesOpenssl` - server uses openssl (boolean true/false)
78
103
-`output.usesDhe` - server might use (<= TLSv1.2 kDHE) Diffie-Hellmann key exchange (boolean true/false)
79
104
-`output.dhCommand` - command to generate Diffie-Hellman (DH) parameters
80
-
-`output.hasVersions` - server config has versions (boolean true/false)
81
-
-`output.supportsConfigs` - supports modern, intermediate, old configs (boolean true/false)
105
+
-`output.hasVersions` - config supports several server versions (boolean true/false)
82
106
-`output.supportsHsts` - supports HTTP Strict Transport Security (HSTS) (boolean true/false)
83
107
-`output.supportsOcspStapling` - server version supporting OCSP Stapling in config
84
108
-`output.tls13` - server version supporting TLSv1.3
85
109
-`output.tlsCurves` - groups/curves list
86
110
87
111
## Building
88
112
89
-
Generate production files in `docs/` files by running
113
+
Production builds have different CSP headers, included scripts, and version info added to the output, so to verify that locally you can inspect the exact production-level artifacts as used in deployment after running:
114
+
90
115
91
116
```bash
92
117
$ npm run build
93
118
```
94
119
95
-
However, doing so is not necessary for production deployment.
120
+
However, this step is not necessary for production deployment.
121
+
Automation publishes the production site via GitHub Pages, so once your PR merges the changes deploy within a minute or two.
96
122
GitHub Pages are published upon commit to the master branch
97
123
via .github/workflows/deploy-to-production.yml
98
124
99
-
## Changelog
100
-
101
-
The Changelog that captures the history of changes to Mozilla's recommendations
102
-
as represented in the JSON guideline files can be found at [`/src/static/guidelines/CHANGELOG.md`](/src/static/guidelines/CHANGELOG.md)
103
-
104
125
## History
105
126
106
-
The SSL Config Generator was kept in [the `mozilla/server-side-tls` repository](https://github.com/mozilla/server-side-tls/tree/last-revision-before-move)
107
-
prior to mid2019 at which point it was moved to this dedicated repository. It
108
-
was initially created [at the end of 2014](https://github.com/mozilla/server-side-tls/commit/b201a1191ba38e6f933cd02a4f425f683ffa9be4)
127
+
The SSL Config Generator was originally part of [`mozilla/server-side-tls@v5.0`](https://github.com/mozilla/server-side-tls/tree/12fda41) ([last-revision-before-move](https://github.com/mozilla/server-side-tls/tree/last-revision-before-move))
128
+
prior to mid-2019 at which point it was moved to this dedicated repository. It
129
+
was initially created [at the end of 2014](https://github.com/mozilla/server-side-tls/commit/b201a11)
109
130
and [started out supporting Apache HTTP, Nginx and HAProxy](https://web.archive.org/web/20141026012016/https://mozilla.github.io/server-side-tls/ssl-config-generator/).
110
131
111
132
## Authors
@@ -116,4 +137,5 @@ and [started out supporting Apache HTTP, Nginx and HAProxy](https://web.archive.
116
137
117
138
## License
118
139
119
-
* Mozilla Public License Version 2.0
140
+
This software is licensed under the [MPL version 2.0](https://www.mozilla.org/MPL/). For more
141
+
information, read this repository's [LICENSE](LICENSE).
0 commit comments