Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
technical:openssl_usage_notes [2019/01/29 11:41] – [Build a Certificate Signing Request (CSR)] bob | technical:openssl_usage_notes [2021/10/14 19:46] (current) – bob | ||
---|---|---|---|
Line 22: | Line 22: | ||
| sign | Calculate a secure hash and encrypt hash with issuer' | | sign | Calculate a secure hash and encrypt hash with issuer' | ||
| subject | The entity (person or organization) described in the cert | | | subject | The entity (person or organization) described in the cert | | ||
+ | |||
+ | ==== File Types ==== | ||
+ | |||
+ | | .pem | Stands for PEM, Privacy Enhanced Mail; it simply indicates a base64 encoding with header and footer lines. Mail traditionally only handles text, not binary which most cryptographic data is, so some kind of encoding is required to make the contents part of a mail message itself (rather than an encoded attachment). The contents of the PEM are detailed in the header and footer line - .pem itself doesn' | ||
+ | | .key | Can be any kind of key, but usually it is the private key - OpenSSL can wrap private keys for all algorithms (RSA, DSA, EC) in a generic and standard PKCS#8 structure, but it also supports a separate ' | ||
+ | | .crt or .cer | Stands simply for certificate, | ||
+ | | .csr or .req | Stands for Certificate Signing Request as defined in PKCS#10; it contains information such as the public key and common name required by a Certificate Authority to create and sign a certificate for the requester, the encoding could be PEM or DER (which is a binary encoding of an ASN.1 specified structure) | | ||
+ | |||
===== Important OpenSSL Commands and Options ===== | ===== Important OpenSSL Commands and Options ===== | ||
Line 104: | Line 112: | ||
</ | </ | ||
- | This doesn' | + | This doesn' |
+ | [ req ] | ||
+ | req_extensions | ||
- | ===== Sign a Certificate Signing Request (CSR) ===== | + | [ v3_req ] |
+ | subjectAltName | ||
+ | |||
+ | [alt_names] | ||
+ | DNS.1 = www.baggerman.org | ||
+ | DNS.2 = baggerman.org | ||
+ | IP.1 = 198.89.126.181 | ||
+ | |||
+ | Check the CSR with the following command: | ||
+ | |||
+ | < | ||
+ | openssl req -text -noout -in baggerman.org.csr | ||
+ | </ | ||
+ | |||
+ | There is also a good CSR decoder at [[https:// | ||
+ | |||
+ | ===== Submit a Certificate Signing Request (CSR) ===== | ||
+ | |||
+ | Use the .csr file to submit a signing request to a certificate provider like CheapSSL. | ||
+ | Save the returned certificate into to a certificate file (.cer) | ||
+ | Also save the intermediate certificate advisory file if necessary. | ||
+ | |||
+ | |||
+ | ===== Or self-sign | ||
< | < | ||
Line 118: | Line 151: | ||
openssl x509 -in certificate.crt -text -noout | openssl x509 -in certificate.crt -text -noout | ||
</ | </ | ||
+ | |||
+ | ===== Convert a Certificate to PEM format ===== | ||
+ | |||
+ | < | ||
+ | openssl x509 -inform der -in certificate.cer -out certificate.pem | ||
+ | </ | ||
+ | |||
+ | If you get an error it probably means the certificate is already in PEM format | ||
===== Self-sign a Certificate ===== | ===== Self-sign a Certificate ===== | ||
Line 125: | Line 166: | ||
</ | </ | ||
+ | ===== Configure Apache ===== | ||
+ | |||
+ | Good notes at | ||
+ | |||
+ | Setup default SSL settings outside of a virtual host. Current recommended config (from [[https:// | ||
+ | |||
+ | SSLCipherSuite EECDH+AESGCM: | ||
+ | SSLProtocol All -SSLv2 -SSLv3 | ||
+ | SSLHonorCipherOrder On | ||
+ | |||
+ | Be sure to set: | ||
+ | |||
+ | SSLCertificateKeyFile | ||
+ | SSLCertificateFile | ||
+ | SSLCertificateChainFile "/ | ||
- | [[Al's New Page]] |