Pokud chcete převést svůj web z HTTP na HTTPS, musíte získat certifikát SSL od platné organizace jako Verisign nebo Thawte. Můžete také vygenerovat certifikát SSL s vlastním podpisem pro testovací účely.
V tomto článku se podíváme, jak vygenerovat soubor soukromého klíče (server.key), soubor žádosti o podpis certifikátu (server.csr) a soubor certifikátu webového serveru (server.crt), které lze použít na serveru Apache s mod_ssl .
Konvence pojmenování souborů klíčů, CSR a CRT
Obvykle rád pojmenovávám soubory názvem domény adresy URL HTTPS, která bude tento certifikát používat. To usnadňuje identifikaci a údržbu.
- Místo server.key používám www.thegeekstuff.com.key
- Místo server.csr používám www.thegeekstuff.com.csr
- Místo server.crt používám www.thegeekstuff.com.crt
1. Vygenerujte soukromý klíč na serveru se spuštěným Apache + mod_ssl
Nejprve vygenerujte soukromý klíč na serveru Linux, na kterém běží webový server Apache, pomocí příkazu openssl, jak je uvedeno níže.
# openssl genrsa -des3 -out www.thegeekstuff.com.key 1024 Generating RSA private key, 1024 bit long modulus .......................................++++++ ...................................................++++++ e is 73547 (0x01001) Enter pass phrase for www.thegeekstuff.com.key: Verifying - Enter pass phrase for www.thegeekstuff.com.key: # ls -ltr www.thegeekstuff.* -rw-r--r-- 1 root root 963 Jun 13 20:26 www.thegeekstuff.com.key
Vygenerovaný soukromý klíč vypadá následovně.
# cat www.thegeekstuff.com.key -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,485B3C6371C9916E ymehJu/RowzrclMcixAyxdbfzQphfUAk9oK9kK2 jadfoiyqthakLKNqw9z1MoaqkPyqeHevUm26no AJKIETHKJADFS2BGb0n61/Ksk8isp7evLM4+QY KAQETKjdiahteksMJOjXLq+vf5Ra299fZPON7yr -----END RSA PRIVATE KEY-----
2. Vygenerujte žádost o podpis certifikátu (CSR)
Pomocí výše vygenerovaného klíče byste měli vygenerovat soubor žádosti o certifikát (csr) pomocí openssl, jak je uvedeno níže.
# openssl req -new -key www.thegeekstuff.com.key -out www.thegeekstuff.com.csr Enter pass phrase for www.thegeekstuff.com.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]:US State or Province Name (full name) [Berkshire]:California Locality Name (eg, city) [Newbury]:Los Angeles Organization Name (eg, company) [My Company Ltd]:The Geek Stuff Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []: thegeekstuff Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: # ls -ltr www.thegeekstuff.* -rw-r--r-- 1 root root 963 Jun 13 20:26 www.thegeekstuff.com.key -rw-r--r-- 1 root root 664 Jun 13 20:35 www.thegeekstuff.com.csr
3. Vygenerujte certifikát SSL s vlastním podpisem
Pro účely testování můžete pomocí příkazu openssl vygenerovat certifikát SSL s vlastním podpisem, který je platný 1 rok, jak je uvedeno níže.
# openssl x509 -req -days 365 -in www.thegeekstuff.com.csr -signkey www.thegeekstuff.com.key -out www.thegeekstuff.com.crt Signature ok subject=/C=US/ST=California/L=Los Angeles/O=thegeekstuff/OU=IT/CN=www.thegeekstuff.com Getting Private key Enter pass phrase for www.thegeekstuff.com.key: # ls -l www.thegeekstuff* -rw-r--r-- 1 root root 963 Jun 13 20:26 www.thegeekstuff.com.key -rw-r--r-- 1 root root 664 Jun 13 20:35 www.thegeekstuff.com.csr -rw-r--r-- 1 root root 879 Jun 13 20:43 www.thegeekstuff.com.crt # cat www.thegeekstuff.com.crt -----BEGIN CERTIFICATE----- haidfshoaihsdfAKDJFAISHTEIHkjasdjadf9w0BAQUFADCB kjadfijadfhWQIOUQERUNcMNasdkjfakljasdBgEFBQcDAQ kjdghkjhfortoieriqqeurNZXCVMNCMN.MCNaGF3dGUuY29 -----END CERTIFICATE-----
Tuto metodu můžete použít ke generování Apache SSL klíče, souboru CSR a CRT ve většině systémů Linux, Unix včetně Ubuntu, Debian, CentOS, Fedora a Red Hat.
4. Získejte platný zkušební certifikát SSL (volitelné)
Místo vlastního podepisování můžete také vygenerovat platný zkušební SSL certifikát z thawte. tj. Než utratíte peníze za nákup certifikátu, můžete také získat platné plně funkční 21denní zkušební SSL certifikáty od Thawte. Jakmile bude tento platný certifikát fungovat, můžete se rozhodnout jej zakoupit od Thawte nebo jiné organizace podepisující SSL.
Tento krok je volitelný a není ve skutečnosti povinný. Pro účely testování můžete vždy použít certifikát s vlastním podpisem, který byl vygenerován ve výše uvedeném kroku.
Přejděte na stránku žádosti o zkušební certifikát Thwate a proveďte následující:
- V části „Vyberte zkušební certifikát“ vyberte „Certifikát webového serveru SSL (všechny servery)“.
- Nezaškrtávejte políčko PKCS #7 pod „konfigurací certifikátu“
- Zkopírujte/vložte soubor *.csr, který jste vygenerovali výše, do textového pole pod „žádost o podpis certifikátu (CSR)“
- Klikněte na tlačítko Další v dolní části, čímž získáte 21denní bezplatný zkušební certifikát.
Zkopírujte/vložte zkušební certifikát do souboru www.thegeekstuff.com.crt, jak je uvedeno níže.
# cat www.thegeekstuff.com.crt -----BEGIN CERTIFICATE----- haidfshoaihsdfAKDJFAISHTEIHkjasdjadf9w0BAQUFADCB kjadfijadfhWQIOUQERUNcMNasdkjfakljasdBgEFBQcDAQ kjdghkjhfortoieriqqeurNZXCVMNCMN.MCNaGF3dGUuY29 -----END CERTIFICATE-----