Skip to content

Commit bd808c3

Browse files
authored
Merge pull request #330 from gstrauss/minor-updates
minor updates
2 parents 31cf0c9 + b4e1a2d commit bd808c3

File tree

5 files changed

+263
-331
lines changed

5 files changed

+263
-331
lines changed

README.md

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,36 @@ This tool is built and deployed to https://ssl-config.mozilla.org/
66

77
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).
88

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.
1010

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.
1133

1234
## Installation
1335

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+
1439
```bash
1540
$ npm install
1641
```
@@ -20,7 +45,7 @@ $ npm install
2045
Once you've installed, you can simply run:
2146

2247
```bash
23-
$ npm run watch
48+
$ npm start # or: npm run watch
2449
```
2550

2651
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
5883

5984
Highlighted items from src/js/state.js for use in templates. See src/js/state.js for more.
6085

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
6489
- `form.config` - configuration name ([ "modern" | "intermediate" | "old" ])
6590
- `form.hsts` - HTTP Strict Transport Security form checkbox (boolean true/false)
6691
- `form.ocsp` - OCSP Stapling form checkbox (boolean true/false)
6792

6893
- `output.header` - description of rendered config
6994
- `output.link` - URL to rendered config
7095
- `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
7398
- `output.serverPreferredOrder` - enforce ServerPreference for ordering cipher list (boolean true/false)
7499
- `output.hstsMaxAge` - max-age (seconds) for Strict-Transport-Security: max-age=... HTTP response header
75100
- `output.hstsRedirectCode` - HTTP status code to use for HSTS redirect from http:// to https://
76101
- `output.latestVersion` - server latest version
77102
- `output.usesOpenssl` - server uses openssl (boolean true/false)
78103
- `output.usesDhe` - server might use (<= TLSv1.2 kDHE) Diffie-Hellmann key exchange (boolean true/false)
79104
- `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)
82106
- `output.supportsHsts` - supports HTTP Strict Transport Security (HSTS) (boolean true/false)
83107
- `output.supportsOcspStapling` - server version supporting OCSP Stapling in config
84108
- `output.tls13` - server version supporting TLSv1.3
85109
- `output.tlsCurves` - groups/curves list
86110

87111
## Building
88112

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+
90115

91116
```bash
92117
$ npm run build
93118
```
94119

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.
96122
GitHub Pages are published upon commit to the master branch
97123
via .github/workflows/deploy-to-production.yml
98124

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-
104125
## History
105126

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 mid 2019 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)
109130
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/).
110131

111132
## Authors
@@ -116,4 +137,5 @@ and [started out supporting Apache HTTP, Nginx and HAProxy](https://web.archive.
116137

117138
## License
118139

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

Comments
 (0)