Skip to Content

Certificates 🔐

Preparing your CSR

A certificate configuration has to be prepared before building a signing request:

[ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = req_ext prompt = no [ req_distinguished_name ] countryName = US # C= stateOrProvinceName = Washington # ST= localityName = Seattle # L= organizationName = Chomat.us # O= organizationalUnitName = [email protected] # OU= commonName = subdomain.domain.com # CU= emailAddress = [email protected] # CN/emailAddress= [ req_ext ] subjectAltName = @alt_names [alt_names] DNS.1 = subdomain.domain.com DNS.2 = subdomain-staging.domain.com DNS.3 = subdomain-qa.domain.com

Generate a CSR (Certificate Signing Request):

openssl req -new -newkey rsa:2048 -nodes -keyout cert.pkey -out cert.csr -config csr.config

From there, you can submit your CSR to your certificate provider.

Keystore

  • Truststore contains public certificates you trust, often used as client to verify server.
  • Keystore contains your certificates and private keys, often used as server to prove its identity.

Replacing a certificate

  • List and delete entry from keystore
# Read a keystore keytool -list -v -keystore $KEYSTORE_FILE -storepass $KEYSTORE_PWD # Once you cert found, you can delete based on the alias name keytool -delete -alias $ALIAS_NAME -keystore $KEYSTORE_FILE -storepass $KEYSTORE_PWD
  • Add a certificate to a keystore
keytool -import -alias $ALIAS_NAME -file $NEW_CERTIFICATE -keystore $KEYSTORE_FILE
  • Add a certificate chain / private keys to a keystore requires an extra step to not import only the server certificate but the entire chain and associated server private key
openssl pkcs12 -export -inkey cert.pkey -in signed_full_chain_cert.cer -name $ALIAS_NAME -out keystore.p12 keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore keystore.jks
Last updated on