Sådan opretter du en længere certifikatkæde med OpenSSL: Trin-for-trin guide

Hvordan oprettes en længere certifikatkæde (Root > A > B > C > ...) ved hjælp af OpenSSL, når kun Root og A certifikaterne er oprettet, og hvordan ændres openssl.cnf filen for at tillade dette?

For at oprette en længere certifikatkæde med OpenSSL skal du generere og signere certifikater for hver enhed i kæden og ændre openssl.cnf filen for at tillade længere kæder.

Sådan oprettes en længere certifikatkæde (Root > A > B > C > ...) ved hjælp af OpenSSL

For at oprette en længere certifikatkæde, hvor kun Root og A certifikaterne er oprettet, skal du følge disse trin:

  1. Opret en privat nøgle og et certifikat for B:
    • Generer en privat nøgle for B:
      openssl genpkey -algorithm RSA -out B.key
    • Opret en certifikat signeringsanmodning (CSR) for B:
      openssl req -new -key B.key -out B.csr
    • Signér B's CSR med A's certifikat og nøgle for at oprette B's certifikat:
      openssl x509 -req -in B.csr -CA A.crt -CAkey A.key -CAcreateserial -out B.crt -days 365 -sha256
  2. Opret en privat nøgle og et certifikat for C:
    • Generer en privat nøgle for C:
      openssl genpkey -algorithm RSA -out C.key
    • Opret en certifikat signeringsanmodning (CSR) for C:
      openssl req -new -key C.key -out C.csr
    • Signér C's CSR med B's certifikat og nøgle for at oprette C's certifikat:
      openssl x509 -req -in C.csr -CA B.crt -CAkey B.key -CAcreateserial -out C.crt -days 365 -sha256

Ændring af openssl.cnf filen for at tillade en længere certifikatkæde

For at tillade en længere certifikatkæde, skal du ændre openssl.cnf filen. Følg disse trin:

  1. Åbn openssl.cnf filen i en teksteditor.
  2. Find sektionen [ CA_default ] og tilføj eller rediger følgende linjer:
    
    [ CA_default ]
    default_days = 365
    default_md = sha256
    preserve = no
    policy = policy_anything
        
  3. Find sektionen [ policy_anything ] og tilføj eller rediger følgende linjer:
    
    [ policy_anything ]
    countryName = optional
    stateOrProvinceName = optional
    localityName = optional
    organizationName = optional
    organizationalUnitName = optional
    commonName = supplied
    emailAddress = optional
        
  4. Find sektionen [ req ] og tilføj eller rediger følgende linjer:
    
    [ req ]
    default_bits = 2048
    default_keyfile = privkey.pem
    distinguished_name = req_distinguished_name
    attributes = req_attributes
    x509_extensions = v3_ca # The extentions to add to the self signed cert
        
  5. Find sektionen [ v3_ca ] og tilføj eller rediger følgende linjer:
    
    [ v3_ca ]
    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid:always,issuer
    basicConstraints = CA:true
        

Disse ændringer i openssl.cnf filen sikrer, at certifikaterne kan oprettes og signeres korrekt for at danne en længere certifikatkæde.