ISRG celebrates 10 years of helping build a brighter Internet →

Certifikat Gennemsigtighed (CT) Logs

Seneste opdatering: | Se al dokumentation

Bemærk: Den engelske version er blevet opdateret siden oversættelsen () Se på engelsk

Certificate Transparency (CT) er et system til logning og overvågning af udstedelsen af TLS-certifikater. CT forbedrer i høj grad alles evne til at overvåge og studere udstedelse af certifikater, og disse evner har ført til talrige forbedringer af CA-økosystemet og websikkerhed. Som følge heraf er CT hurtigt ved at blive kritisk infrastruktur.

Let's Encrypt indsender alle certifikater, vi udsteder til CT-logs. Vi driver også to årligt splittede CT-logfiler med navnet Oak og Testflume. Alle offentligt betroede certifikatmyndigheder er velkomne til at indsende til vores logfiler. Mange rod-certifikater fra certifikatmyndigheder er allerede inkluderet i vores CT-logs. Kontakt os via e-mail for at få tilføjet nye rodcertifikater til vores logs, hvis din ikke er medtaget.

Tilmeld dig for meddelelser i kategorien CT annonceringer i vores community forum for at se større meddelelser om vores CT-logs.

Finansiering

Vi vil gerne takke følgende partnere for generøst at sponsorere Let's Encrypt CT log. Hvis din organisation gerne vil hjælpe os med at fortsætte dette arbejde, så overvej venligst sponsorering eller donering.

Sectigo

Arkitektur

Tjek vores blog for at se Hvordan Let's Encrypt driver CT Logs!

Log Overvågning

Let's Encrypt har oprettet et open source CT-logovervågningsværktøj kaldet CT Woodpecker. Vi anvender dette værktøj til at overvåge stabiliteten og overholdelsen af vores egne logs, og vi håber, at andre også vil finde det nyttigt.

CT Logs

Produktion

Test


Log Handlinger

For at opliste de medfølgende rødder for en bestemt CT-log, kan du køre følgende kommando i en terminal efter eget valg:

$ for i in $(curl -s https://oak.ct.letsencrypt.org/2020/ct/v1/get-roots | jq -r '.certificates[]'); do
    echo '------'; base64 -d <<< "${i}" | openssl x509 -inform der -noout -issuer -serial
done

Indsendelse af certifikater til en CT-log håndteres typisk af certifikatmyndigheder. Hvis du gerne vil eksperimentere med dette, så begynd med at hente et vilkårligt PEM-kodet certifikat fra vores foretrukne hjemmeside. Kopier og indsæt følgende blok i din terminal.

$ echo | \
openssl s_client \
    -connect "letsencrypt.org":443 \
    -servername "letsencrypt.org" \
    -verify_hostname "letsencrypt.org" 2>/dev/null | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > example.crt

Før et certifikat kan indsendes, skal det være JSON kodet i en speciel struktur. Du kan bruge JSON generatoren fra https://crt.sh/gen-add-chain til at udføre denne opgave. Crt.sh værktøjet vil returnere en JSON bundle. Download pakken til din computer, omdøb filen, hvis du skal og udstede følgende kommando til udførelse af add-chain operation (RFC 6962 afsnit 4.) at indsende certifikatet til en CT-log. Outputtet vil indeholde en signatur, som faktisk er en SCT. Mere om underskriften om et øjeblik.

$ curl \
    -X POST \
   --data @example-json-bundle.json \
    -H "Content-Type: application/json" \
    -H "User-Agent: lets-encrypt-ct-log-example-1.0" \
   https://oak.ct.letsencrypt.org/2020/ct/v1/add-chain
{"sct_version":0,"id":"5xLysDd+GmL7jskMYYTx6ns3y1YdESZb8+DzS/JBVG4=","timestamp":1576689972016,"extensions":"","signature":"BAMARzBFAiEA4OmuTcft9Jq3XLtcdZz9XinXCvYEY1RdSQICXayMJ+0CIHuujkKBLmQz5Cl/VG6C354cP9gxW0dfgMWB+A2yHi+E"}

For at bekræfte, at CT-loggen blev underskrevet af Oak 2020-loggen — vi bruger id feltet fra kommandoen ovenfor og køre det gennem følgende kommando. Resultatet af dette vil udsende log-ID'et for CT-loggen.

$ base64 -d <<< "5xLysDd+GmL7jskMYYTx6ns3y1YdESZb8+DzS/JBVG4=" | xxd -p -c 64 | sed -e 's/../&:/g' -e 's/:$//' | tr '[:lower:]' '[:upper:]'
E7:12:F2:B0:37:7E:1A:62:FB:8E:C9:0C:61:84:F1:EA:7B:37:CB:56:1D:11:26:5B:F3:E0:F3:4B:F2:41:54:6E

Ved brug af signaturfeltet, kan vi verificere at certifikatet blev indsendt til en log. Ved hjælp af vores SCT detaljerede vejledningkan du afkode denne værdi yderligere.

$ base64 -d <<< "BAMARzBFAiEA4OmuTcft9Jq3XLtcdZz9XinXCvYEY1RdSQICXayMJ+0CIHuujkKBLmQz5Cl/VG6C354cP9gxW0dfgMWB+A2yHi+E" | xxd -p -c 16 | sed -e 's/../&:/g' -e 's/:$//' | tr '[:lower:]' '[:upper:]'
04:03:00:47:30:45:02:21:00:E0:E9:AE:4D:C7:ED:F4
9A:B7:5C:BB:5C:75:9C:FD:5E:29:D7:0A:F6:04:63:54
5D:49:02:02:5D:AC:8C:27:ED:02:20:7B:AE:8E:42:81
2E:64:33:E4:29:7F:54:6E:82:DF:9E:1C:3F:D8:31:5B
47:5F:80:C5:81:F8:0D:B2:1E:2F:84