Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add historic ceremonies and restructure project #10

Merged
merged 45 commits into from
Sep 1, 2023
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
e66690a
Update README for 2022 ceremony
aarongable Mar 29, 2022
0b0be27
Update softhsm for 2022 ceremony
aarongable Mar 29, 2022
027b2d3
Update config files for 2022 ceremony
aarongable Mar 29, 2022
b1d4bef
Update script for 2022 ceremony
aarongable Mar 29, 2022
6c68deb
Fix typos
aarongable Mar 31, 2022
0cae47e
Update timestamp for a 2023 ceremony
pgporada May 25, 2023
9c06750
Update notbefore and notafter accordingly
pgporada May 25, 2023
f011751
Ignore w_sub_ca_aia_missing zlint because these are CA profiles
pgporada May 25, 2023
4f0d8bd
Restructure files
pgporada May 30, 2023
52ff37b
Update gitignore
pgporada May 31, 2023
f785de2
Update README
pgporada May 31, 2023
35edf97
Allow cleaning up files through a symlink
pgporada May 31, 2023
9634bdc
Perform every ceremony that we can for historical purposes
pgporada May 31, 2023
19549bd
Generate 3 intermediates each for Root X1 and Root X2 from engineerin…
pgporada May 31, 2023
d092ee5
Create compatability ECDSA intermediates signed by RSA X1
pgporada Jun 1, 2023
001a670
Rename intermediate G to H for 'hybrid'
pgporada Jun 5, 2023
37925dd
Add more historical ceremony bits
pgporada Jun 6, 2023
65dc4fd
Don't cross-sign existing e1 and e2
pgporada Jul 6, 2023
82fa80d
Rename Hx certs to Ex-cross
pgporada Jul 6, 2023
71348b3
Set country code to US and remove CP-CPS OID from new intermediates
pgporada Jul 17, 2023
e2c3804
5x intermediates per root with 3 year lifetime
pgporada Jul 18, 2023
f0e6937
Adjust intermediates in the run script
pgporada Jul 18, 2023
33187e9
Skip specific lints for unrestricted subordinate CA cross-signs
pgporada Jul 20, 2023
fa98721
Run each standalone ceremony from run.sh in the repo root
pgporada Jul 21, 2023
4145c63
Return to script directory after building boulders
pgporada Jul 24, 2023
2c253d6
Set all new eX cross-signs to the cross-certificate ceremony with cor…
pgporada Jul 24, 2023
3682b7e
Allow overriding ceremony tool location
pgporada Jul 24, 2023
15f77b9
Info log about ceremony tool path
pgporada Jul 25, 2023
d3bb8df
Fix logic for setting ceremony tool path
pgporada Jul 25, 2023
3ea8736
Better output while verifying CSRs
pgporada Jul 26, 2023
11105ba
Remove extra newline
pgporada Jul 26, 2023
2feb0dc
Update readme title
pgporada Aug 17, 2023
77034e4
Issue Intermediate I1 then revoke it
pgporada Aug 17, 2023
aad2a2f
Update readme
pgporada Aug 17, 2023
439efcf
Split 2023 files off into a separate PR
pgporada Aug 28, 2023
18ad381
Simplify
pgporada Aug 29, 2023
51432ac
Remove unneeded arg
pgporada Aug 29, 2023
315c779
Address comment
pgporada Aug 29, 2023
5b64112
Address more comments
pgporada Aug 29, 2023
2fbcb83
Fix DST Root X3 not-after date
pgporada Aug 29, 2023
372bcb4
e_sub_ca_aia_missing was superseded by w_sub_ca_aia_missing before th…
pgporada Aug 29, 2023
92adb25
Update gitignore
pgporada Aug 29, 2023
877b145
Fix weird line ending and spacing
pgporada Aug 29, 2023
1add6f6
Change ceremony bin variable name
pgporada Aug 30, 2023
925baf0
Address comments
pgporada Aug 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
softhsm2.conf
softhsm/
*.cert.pem
*.cert.txt
*.key.pem
34 changes: 23 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,29 @@
# Let's Encrypt 2020 Hierarchy
# Let's Encrypt 2022 Ceremony

Let's Encrypt generated ECDSA P-384 root and new intermediates in
2020. We will used [Boulder's `ceremony` tooling to generate these][ceremony].
Let's Encrypt plans to generate new intermediates (both RSA 2048 and ECDSA P-384) in 2022, to complement the cohort of existing intermediates (R3, R4, E1, and E2) already present in our hierarchy.

This directory contains example config files that simulated the certificate
profiles in detail. We used it to gather feedback prior to our key ceremony.
profiles in detail. We are using it to gather feedback prior to our key ceremony.

To try it out:

- install the `ceremony` tool in your $PATH
- install SoftHSMv2
- Update the YAML files, if necessary, to reflect that path to your SoftHSMv2
install.
- Run ./run.sh.
- If you make any modifications, run ./reset.sh && ./run.sh.
- Install the [`ceremony`](https://github.com/letsencrypt/boulder/blob/main/cmd/ceremony/README.md) tool in your `$PATH`.

```sh
go install https://github.com/letsencrypt/boulder/cmd/ceremony
```

- Install [SoftHSMv2](https://github.com/opendnssec/SoftHSMv2).

```sh
sudo apt install softhsm2
```

- Update the YAML files, if necessary, to reflect that path to your SoftHSMv2
install.

- Execute the demo ceremony.

[ceremony]: https://github.com/letsencrypt/boulder/blob/main/cmd/ceremony/README.md
```sh
./reset.sh && ./run.sh`
```
14 changes: 7 additions & 7 deletions e1-cert.yaml → e5-cert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ ceremony-type: intermediate
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
signing-key-slot: 1094195990
signing-key-slot: 1307844626
signing-key-label: root-x2
inputs:
issuer-certificate-path: root-x2.cert.pem
public-key-path: int-e1.key.pem
public-key-path: int-e5.key.pem
outputs:
certificate-path: int-e1.cert.pem
certificate-path: int-e5.cert.pem
certificate-profile:
signature-algorithm: ECDSAWithSHA384
common-name: Example ECDSA 1
organization: Example
common-name: (FAKE) E1
aarongable marked this conversation as resolved.
Show resolved Hide resolved
organization: (FAKE) Let's Encrypt
country: XX
pgporada marked this conversation as resolved.
Show resolved Hide resolved
not-before: 2020-09-04 00:00:00
not-after: 2025-09-15 16:00:00
not-before: 2022-09-07 00:00:00
not-after: 2027-09-06 23:59:59
key-usages:
- Cert Sign
- CRL Sign
Expand Down
6 changes: 3 additions & 3 deletions e1-key.yaml → e5-key.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ ceremony-type: key
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
store-key-in-slot: 703725468
store-key-with-label: int-e1
store-key-in-slot: 732394342
store-key-with-label: int-e5
key:
type: ecdsa
ecdsa-curve: P-384
outputs:
public-key-path: int-e1.key.pem
public-key-path: int-e5.key.pem
14 changes: 7 additions & 7 deletions e2-cert.yaml → e6-cert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ ceremony-type: intermediate
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
signing-key-slot: 1094195990
signing-key-slot: 1307844626
signing-key-label: root-x2
inputs:
issuer-certificate-path: root-x2.cert.pem
public-key-path: int-e2.key.pem
public-key-path: int-e6.key.pem
outputs:
certificate-path: int-e2.cert.pem
certificate-path: int-e6.cert.pem
certificate-profile:
signature-algorithm: ECDSAWithSHA384
common-name: Example ECDSA 2
organization: Example
common-name: (FAKE) E6
organization: (FAKE) Let's Encrypt
country: XX
not-before: 2020-09-04 00:00:00
not-after: 2025-09-15 16:00:00
not-before: 2022-09-07 00:00:00
not-after: 2027-09-06 23:59:59
key-usages:
- Cert Sign
- CRL Sign
Expand Down
6 changes: 3 additions & 3 deletions e2-key.yaml → e6-key.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ ceremony-type: key
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
store-key-in-slot: 703725468
store-key-with-label: int-e2
store-key-in-slot: 732394342
store-key-with-label: int-e6
key:
type: ecdsa
ecdsa-curve: P-384
outputs:
public-key-path: int-e2.key.pem
public-key-path: int-e6.key.pem
9 changes: 5 additions & 4 deletions init-softhsm.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#!/bin/bash -exv
#
# This doesn't really need to be run again. I ran it once to set up a SoftHSM
# directory, but then checked in the SoftHSM files so run.sh can be run
# repeatedly with the same slot ids.

# This doesn't really need to be run again. It was used to generate the
# //softhsm/ directory which is checked into this repository, but now that
# directory can be left untouched while the yaml config files statically
# reference its pin and slots.

export SOFTHSM2_CONF=$PWD/softhsm2.conf
echo "directories.tokendir = $PWD/softhsm/" > $SOFTHSM2_CONF
Expand Down
24 changes: 0 additions & 24 deletions r3-cross-csr.yaml

This file was deleted.

24 changes: 0 additions & 24 deletions r4-cross-csr.yaml

This file was deleted.

14 changes: 7 additions & 7 deletions r3-cert.yaml → r7-cert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ ceremony-type: intermediate
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
signing-key-slot: 1094195990
signing-key-slot: 1307844626
signing-key-label: root-x1
inputs:
issuer-certificate-path: root-x1.cert.pem
public-key-path: int-r3.key.pem
public-key-path: int-r7.key.pem
outputs:
certificate-path: int-r3.cert.pem
certificate-path: int-r7.cert.pem
certificate-profile:
signature-algorithm: SHA256WithRSA
common-name: Example RSA 1
organization: Example
common-name: (FAKE) R7
pgporada marked this conversation as resolved.
Show resolved Hide resolved
organization: (FAKE) Let's Encrypt
country: XX
not-before: 2020-09-04 00:00:00
not-after: 2025-09-15 16:00:00
not-before: 2022-09-07 00:00:00
not-after: 2027-09-06 23:59:59
key-usages:
- Cert Sign
- CRL Sign
Expand Down
6 changes: 3 additions & 3 deletions r3-key.yaml → r7-key.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ ceremony-type: key
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
store-key-in-slot: 703725468
store-key-with-label: int-r3
store-key-in-slot: 732394342
store-key-with-label: int-r7
key:
type: rsa
rsa-mod-length: 2048
outputs:
public-key-path: int-r3.key.pem
public-key-path: int-r7.key.pem
14 changes: 7 additions & 7 deletions r4-cert.yaml → r8-cert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ ceremony-type: intermediate
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
signing-key-slot: 1094195990
signing-key-slot: 1307844626
signing-key-label: root-x1
inputs:
issuer-certificate-path: root-x1.cert.pem
public-key-path: int-r4.key.pem
public-key-path: int-r8.key.pem
outputs:
certificate-path: int-r4.cert.pem
certificate-path: int-r8.cert.pem
certificate-profile:
signature-algorithm: SHA256WithRSA
common-name: Example RSA 2
organization: Example
common-name: (FAKE) R8
organization: (FAKE) Let's Encrypt
country: XX
not-before: 2020-09-04 00:00:00
not-after: 2025-09-15 16:00:00
not-before: 2022-09-07 00:00:00
not-after: 2027-09-06 23:59:59
key-usages:
- Cert Sign
- CRL Sign
Expand Down
6 changes: 3 additions & 3 deletions r4-key.yaml → r8-key.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ ceremony-type: key
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
store-key-in-slot: 703725468
store-key-with-label: int-r4
store-key-in-slot: 732394342
store-key-with-label: int-r8
key:
type: rsa
rsa-mod-length: 2048
outputs:
public-key-path: int-r4.key.pem
public-key-path: int-r8.key.pem
2 changes: 1 addition & 1 deletion reset.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash -exv

rm -f *.pem *.pem.txt
rm -f *.pem *.txt
rm -rf softhsm/*
git reset -- softhsm
git checkout -- softhsm
14 changes: 0 additions & 14 deletions root-x1.crl.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion root-x1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ceremony-type: root
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
store-key-in-slot: 1094195990
store-key-in-slot: 1307844626
store-key-with-label: root-x1
key:
type: rsa
Expand Down
14 changes: 0 additions & 14 deletions root-x2.crl.yaml

This file was deleted.

4 changes: 2 additions & 2 deletions root-x2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ ceremony-type: root
pkcs11:
module: /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
pin: 1234
store-key-in-slot: 1094195990
store-key-in-slot: 1307844626
store-key-with-label: root-x2
key:
type: ecdsa
Expand All @@ -16,7 +16,7 @@ certificate-profile:
common-name: (FAKE) ISRG Root X2
organization: Internet Security Research Group
country: US
not-before: 2020-09-04 00:00:00
not-before: 2020-09-07 00:00:00
aarongable marked this conversation as resolved.
Show resolved Hide resolved
not-after: 2040-09-17 16:00:00
key-usages:
- Cert Sign
Expand Down
22 changes: 0 additions & 22 deletions root.yaml

This file was deleted.

Loading