Tls configuration
Skill Amey-Thakur/AI-SKILLS/skills/security/tls-configuration
Configure transport layer security with modern protocol versions, automated certificate renewal, and strict transport enforcement. Use when standing up HTTPS on a server, terminating TLS at a proxy, or hardening an endpoint that already serves traffic.From its SKILL.md
npx -y skills add Amey-Thakur/AI-SKILLS --skill tls-configurationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.0 KB, 675 tokens by cl100k_base, as published. Nobody here has run it
TLS configuration
A TLS setup that merely shows a padlock can still allow downgrade to a broken cipher, serve a certificate that expired overnight, or let a browser fall back to plaintext on the next visit. The job is to pin the protocol floor, keep certificates fresh without a human in the loop, and make the browser refuse anything but HTTPS after the first contact.
Method
- Disable everything below TLS 1.2. Turn off SSLv3, TLS 1.0, and
TLS 1.1 explicitly. In nginx set
ssl_protocols TLSv1.2 TLSv1.3;. Prefer 1.3 where the client base allows it: it drops RSA key exchange and static ciphers by design, so the negotiation surface shrinks on its own. - Choose the cipher list from a maintained source, not memory. Paste
the Mozilla SSL Configuration Generator "intermediate" profile for your
server and version rather than handpicking suites. Set
ssl_prefer_server_ciphers offfor 1.3, and keep only forward-secret ECDHE suites on 1.2. - Automate issuance and renewal with ACME. Run certbot or acme.sh, or let Caddy and Traefik handle it inline. Renew at 30 days remaining, not at expiry, and reload the server after the hook installs the new cert. Never let a renewal depend on someone reading a calendar reminder.
- Send HSTS only once the whole origin is HTTPS. Add
Strict-Transport-Security: max-age=31536000; includeSubDomains. Rampmax-ageup from a few hours while you confirm nothing still needs plaintext, because the browser will honor a bad value for its full life. - Add
preloaddeliberately, then submit to hstspreload.org. Preload bakes the rule into the browser binary and is slow to reverse, so commit only when every subdomain, forever, will serve TLS. - Staple OCSP and serve the full chain. Enable
ssl_stapling on;with a resolver so clients skip a revocation round-trip, and include intermediates in the chain file so mobile clients without the intermediate cached still validate.
Checks
- Does
testssl.sh https://hostor SSL Labs report grade A with no protocol or cipher warnings? - Does
openssl s_client -connect host:443 -tls1_1fail to negotiate? - Does the response carry an HSTS header with
max-ageat least 31536000 once the origin is fully migrated? - Will the certificate renew and reload untouched if every operator is on vacation the week it expires?
Boundaries
This covers server and proxy configuration, not the certificate authority trust decisions your organization makes or mutual TLS between services, which carries its own key distribution problem. Where a managed load balancer or CDN terminates TLS, configure it there and confirm the origin leg is encrypted too rather than assuming the edge covers it.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most project setup skills give in 675 tokens
Counted across 1,553 of the 3,091 authors here whose files we hold, read 2026-09-06
- Write the configuration filein 36 of 1553
- Create the directory structurein 35 of 1553, across 33 files
- Verify the setupin 31 of 1553, across 28 files
- Run the setup scriptin 30 of 1553, across 29 files
- Pre-determine the required sample sizein 29 of 1553, across 12 files
- Check if the configuration already existsin 29 of 1553
- Document every testin 26 of 1553, across 10 files
- Start with a hypothesisin 26 of 1553, across 11 files
- Ask one question at a timein 22 of 1553
- Test a single variable per testin 21 of 1553, across 9 files
- Read product marketing context before asking questionsin 19 of 1553, across 8 files
- Do not peek and stop earlyin 18 of 1553, across 7 files
Said here and by no other author read
- Choose the cipher list from a maintained source
- Automate issuance and renewal with ACME
- Send HSTS only once the whole origin is HTTPS
- Add preload deliberately
- Staple OCSP and serve the full chain
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.