GNU/Linux >> Znalost Linux >  >> Linux

Jak vygenerovat klíč SSL, CSR a certifikát s vlastním podpisem pro Apache

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-----

Linux
  1. Jak vygenerovat žádost o podpis certifikátu (CSR) v systému Linux

  2. Vydávejte bezplatné a CA podepsané SSL certifikáty pro webové servery od LetsEncrypt

  3. Jak vygenerovat klíč a CSR v cPanel pro váš certifikát SSL

  1. Jak zajistit, aby Apache 2 přestal žádat heslo pro certifikát Ssl?

  2. Jak vygenerovat žádost o podpis certifikátu (CSR) pro SSL

  3. Jak vytvořit certifikát SSL s vlastním podpisem na Ubuntu 18.04

  1. Jak nainstalovat certifikát SSL na Apache pro CentOS 7

  2. Jak vygenerovat klíč CSR a nainstalovat certifikát SSL z CWP?

  3. Jak vygenerovat žádost o podpis certifikátu (CSR) s OpenSSL?