GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So generieren Sie SSL-Schlüssel, CSR und selbstsigniertes Zertifikat für Apache

Wenn Sie Ihre Website von HTTP auf HTTPS umstellen möchten, benötigen Sie ein SSL-Zertifikat von einer gültigen Organisation wie Verisign oder Thawte. Sie können zu Testzwecken auch ein selbstsigniertes SSL-Zertifikat generieren.

In diesem Artikel sehen wir uns an, wie Sie eine Datei mit privatem Schlüssel (server.key), eine Datei mit Zertifikatssignierungsanforderung (server.csr) und eine Webserver-Zertifikatdatei (server.crt) generieren, die auf einem Apache-Server mit mod_ssl verwendet werden können .

Schlüssel-, CSR- und CRT-Dateinamenskonvention

Normalerweise benenne ich die Dateien gerne mit dem Domänennamen der HTTPS-URL, die dieses Zertifikat verwenden wird. Dies erleichtert die Identifizierung und Wartung.

  • Anstelle von server.key verwende ich www.thegeekstuff.com.key
  • Anstelle von server.csr verwende ich www.thegeekstuff.com.csr
  • Anstelle von server.crt verwende ich www.thegeekstuff.com.crt

1. Generieren Sie einen privaten Schlüssel auf dem Server, auf dem Apache + mod_ssl ausgeführt wird

Generieren Sie zunächst einen privaten Schlüssel auf dem Linux-Server, auf dem der Apache-Webserver ausgeführt wird, indem Sie den Befehl openssl wie unten gezeigt verwenden.

# 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

Der generierte private Schlüssel sieht wie folgt aus.

# 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. Generieren Sie eine Certificate Signing Request (CSR)

Mit dem oben generierten Schlüssel sollten Sie eine Zertifikatsanforderungsdatei (csr) mit openssl wie unten gezeigt generieren.

# 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. Generieren Sie ein selbstsigniertes SSL-Zertifikat

Zu Testzwecken können Sie mit dem Befehl openssl wie unten gezeigt ein selbstsigniertes SSL-Zertifikat generieren, das 1 Jahr gültig ist.

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


Sie können diese Methode verwenden, um Apache SSL-Schlüssel, CSR- und CRT-Dateien in den meisten Linux- und Unix-Systemen zu generieren, einschließlich Ubuntu, Debian, CentOS, Fedora und Red Hat.

4. Holen Sie sich ein gültiges Test-SSL-Zertifikat (optional)

Anstatt es selbst zu signieren, können Sie auch ein gültiges Test-SSL-Zertifikat von thawte generieren. d.h. bevor Sie das Geld für den Kauf eines Zertifikats ausgeben, können Sie auch ein gültiges, voll funktionsfähiges 21-Tage-Test-SSL-Zertifikat von Thawte erhalten. Sobald dieses gültige Zertifikat funktioniert, können Sie es entweder von Thawte oder einer anderen SSL-signierenden Organisation kaufen.

Dieser Schritt ist optional und nicht unbedingt erforderlich. Zu Testzwecken können Sie jederzeit das selbstsignierte Zertifikat verwenden, das im obigen Schritt generiert wurde.

Gehen Sie zur Thwate Testzertifikat-Anforderungsseite und gehen Sie wie folgt vor:

  • Wählen Sie „SSL-Webserverzertifikat (alle Server)“ unter „Wählen Sie Ihr Testzertifikat aus“.
  • Aktivieren Sie nicht das Kontrollkästchen PKCS #7 unter „Zertifikat konfigurieren“
  • Kopieren Sie die *.csr-Datei, die Sie oben generiert haben, in das Textfeld unter „Certificate Signing Request (CSR)“
  • Klicken Sie unten auf "Weiter", um ein 21-tägiges kostenloses Testzertifikat zu erhalten.


Kopieren/fügen Sie das Testzertifikat wie unten gezeigt in die Datei www.thegeekstuff.com.crt ein.

# cat www.thegeekstuff.com.crt
-----BEGIN CERTIFICATE-----
haidfshoaihsdfAKDJFAISHTEIHkjasdjadf9w0BAQUFADCB
kjadfijadfhWQIOUQERUNcMNasdkjfakljasdBgEFBQcDAQ
kjdghkjhfortoieriqqeurNZXCVMNCMN.MCNaGF3dGUuY29
-----END CERTIFICATE-----

Linux
  1. So generieren Sie eine Zertifikatsignierungsanforderung (CSR) unter Linux

  2. Stellen Sie kostenlose und CA-signierte SSL-Zertifikate für Webserver von LetsEncrypt aus

  3. Wie kann man Apache 2 dazu bringen, nicht mehr nach einem Passwort für ein SSL-Zertifikat zu fragen?

  4. Wie erstelle ich einen CSR-Schlüssel und installiere ein SSL-Zertifikat von CWP?

  5. So generieren Sie eine Certificate Signing Request (CSR) für ein SSL

Wie generiert man CSR in Plesk 17?

Wie generiert man CSR-Schlüssel über WHM?

Wie generiere ich CSR und installiere das SSL-Zertifikat in SolidCP?

Wie generiert man CSRs für SSL in cPanel?

Generieren Sie CSR und privaten Schlüssel in Plesk

So generieren Sie eine CSR (Certificate Signing Request) unter Linux