CAcert class3 Zertifikat für Nginx erstellen und einrichten
Im folgenden wird die Erzeugung eines CAcert class3 Zertifikates und dessen Einbindung in den Webserver Nginx erläutert.
In das Zertifikatsverzeichnis von Nginx wechseln
$ cd /etc/nginx/ssl
Ein Zertifikat mittels openssl erstellen
openssl genrsa -out example.com.key 2048
Certificate Signing Request (CSR) erzeugen
Im folgenden wird der certificate singing request (CSR) erzeugt, dabei brauchen wir nur für Common Name die Domain anzugeben, da der Rest eh nicht von CAcert übernommen wird.
openssl req -new -key example.com.key -out example.com.csr
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:example.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Danach haben folgende Dateien im aktuellen Verzeichniss:
myserver:/etc/nginx/ssl# ls
example.com.csr example.com.key
Den Inhalt von der CRS-Datei kopiert man in ein Formular bei CAcert und bekommt darauf hin ein Zertifikat. Den Text legt man dann als eine CRT-Datei ab:
myserver:/etc/nginx/ssl# cat example.com.crt
-----BEGIN CERTIFICATE-----
MIXXXXGgAwIBAgIDAJYbMA0GCSqGSIb3DQEBBQUAMFQxFDASBgNVBAoTC0NB
Y2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5vcmcxHDAaBgNV
BAMTE0NBY2VydCBDbGFzcyAzIFJvb3QwHhcNMDkxMjA4MjEzMjI1WhcNMTExMjA4
MjEzMjI1WjAZMRcwFQYDVQQDEw5wc2IxLmlucWJ1cy5kZTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAv8Tfb6EZV4EDHoNwTSaUlHsMKZao4R7Yt+srnJLixB3B
KhOoX2Y3lRYnVgM1uJFt6jgUt0w+wrJRCv5Vf1c+TBdwxzGRgjUojEqTtmKf/UWr
bbOYgPvimhTJlhdWN+o3kgpNeSx8Wm41WOxoDVH2eku6BFqg41YSr1EzwxrT+lsC
AwEAAaOBwjCBvzAMBgXXXXXf8EAjAAMDQGA1UdJQQtMCsGCCsGAQUFBwMCBggr
BgEFBQcDAQYJYIZIAYb4QgQBBgorBgEEAYI3CgMDMAsGA1UdDwQEAwIFoDAzBggr
BgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmNhY2VydC5vcmcv
MDcGA1UdEQQwMC6CDnBzYjEuaW5xYnVzLmRloBwGCCsGAQUFBwgFoBAMDnBzYjEu
aW5xYnVzLmRlMA0GCSqGSIb3DQEBBQUAA4ICAQAGAoL+DHLw5ao77/41fxgKh0d/
uSj+0upy2ETn9YQvibxPvKu+MFMFa50V9G/TpIm2kgJ7OFVO+abjmiTfaV0oTkDX
nORqcDTntxfsXMhq4s2B3k6HCROggecKPxIexrUzFtx+rREemgQ4RsxqQDCpYTq7
Dt/k7Kahzh7wkFBpQS2BWsJhv6rRgRar346Qfrm781zcLtcppgol1Sbjm6Stzo+p
mBUcWyCiWHQOmUKt7ApclufjCBSN2xyErouF8jvnBvHBaKKuEvVhGycTV7mFPsZB
S9htsaDjzpiFiEfbYBSgXsr5K6Q7rP3Q5lZXYTpWAY/9iNiLZDMySpLbFekb2uvR
kJEXHSMwfMVcL3sNSSZayaggMvkZ/yaGX9NtJhxJfV4zL/EKpAMlFbAVp9FpuhzT
Cwo9Hb82IF6oNbKfxk4Akmop4t4lIJJ0gIeTWYRQUwmrAnporbwV+W35RC5L/TsK
N7hl2g2J20yT52ZahfEGvoViBdWUUv/VxBDwZHw6MNEI43tjGA02wxofVzztUWWm
+yYb9Cgur3qqbA04gIjK6x4SW8V1tE8dFBwuBivOY4FwWzF7z5M81wCeiRWnjHq4
69GxmsXkSNXCK6yTvrFflORzi5BV1kCIKovlg2HyTT8HOX+00139IXPLT3cnqagT
IIILpZKc0BdMsbwV6A==
-----END CERTIFICATE-----
Verkettetes Zertifikat
Da es sich bei den class3-Zertifikaten um verkettete Zertifikate (Chained Certificate) handelt, muss an unser Zertifikat jetzt noch das Chain-Zertifikat von CAcert angehängt werden.
Das Chain-Zertifikat ist nichts anderes als die Kombination von dem class1-Zertifikat (root.crt) und dem class3-Zertifikat (class3.crt) welche man sich hier herunter laden kann.
CAcert Root-Zertifikate
http://www.cacert.org/index.php?id=3
Die beiden Root-Zertifikate werden wie folgt mit unserem Zertifikat verkettet:
$ cd /etc/nginx/ssl
$ mkdir CAcert
$ cd CAcert
$ wget http://www.cacert.org/certs/root.crt
$ wget http://www.cacert.org/certs/class3.crt
$ cat CAcert/root.crt CAcert/class3.crt >> example.com.crt