grpc-go/security/advancedtls/testdata
Roland Bracewell Shoemaker 231ca3b24e
security/advancedtls: fix CRL issuer comparison (#5130)
Fix CRL issuer comparison issue
2022-01-25 13:32:27 -08:00
..
crl
README.md
another_client_cert_1.pem
another_client_key_1.pem
client_cert_1.pem
client_cert_2.pem
client_key_1.pem
client_key_2.pem
client_trust_cert_1.pem
client_trust_cert_2.pem
client_trust_key_1.pem
client_trust_key_2.pem
localhost-openssl.cnf
openssl-ca.cnf
server_cert_1.pem
server_cert_1.txt
server_cert_2.pem
server_cert_2.txt
server_cert_3.pem
server_cert_3.txt
server_cert_localhost_1.pem
server_key_1.pem
server_key_2.pem
server_key_3.pem
server_key_localhost_1.pem
server_trust_cert_1.pem
server_trust_cert_2.pem
server_trust_key_1.pem
server_trust_key_2.pem
testdata.go

README.md

About This Directory

This testdata directory contains the certificates used in the tests of package advancedtls.

How to Generate Test Certificates Using OpenSSL

Supposing we are going to create a subject_cert.pem that is trusted by ca_cert.pem, here are the commands we run:

  1. Generate the private key, ca_key.pem, and the cert ca_cert.pem, for the CA:

    $ openssl req -x509 -newkey rsa:4096 -keyout ca_key.pem -out ca_cert.pem -nodes -days $DURATION_DAYS
    
  2. Generate a private key subject_key.pem for the subject:

    $ openssl genrsa -out subject_key.pem 4096
    
  3. Generate a CSR csr.pem using subject_key.pem:

    $ openssl req -new -key subject_key.pem -out csr.pem
    

    For some cases, we might want to add some extra SAN fields in subject_cert.pem. In those cases, we can create a configuration file(for example, localhost-openssl.cnf), and do the following:

    $ openssl req -new -key subject_key.pem -out csr.pem -config $CONFIG_FILE_NAME
    
  4. Use ca_key.pem and ca_cert.pem to sign csr.pem, and get a certificate, subject_cert.pem, for the subject:

    This step requires some additional configuration steps and please check out this answer from StackOverflow for more.

    $ openssl ca -config openssl-ca.cnf -policy signing_policy -extensions signing_req -out subject_cert.pem -in csr.pem -keyfile ca_key.pem -cert ca_cert.pem
    

    Please see an example configuration template at openssl-ca.cnf.

  5. Verify the subject_cert.pem is trusted by ca_cert.pem:

    $ openssl verify -verbose -CAfile ca_cert.pem  subject_cert.pem