Generera SSL certifikat i Debian Jessie: Difference between revisions

From Peters wiki
Jump to navigation Jump to search
Created page with "== Säkerhet == För att säkra upp trafiken mot LDAP servern, behöver vi kryptera trafiken. Vi kommer använda oss av TLS och skapa certifikat mha easy-rsa. Installera easy..."
 
mNo edit summary
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Säkerhet ==
Denna guide beskriver hur man genererar sitt egna CA (''Certificate Authority'') certifikat och ett certifikat för en webserver i Debian Jessie. Vår domän i exemplen är example.com och vår webserver har hostname www.example.com.


För att säkra upp trafiken mot LDAP servern, behöver vi kryptera trafiken. Vi kommer använda oss av TLS och skapa certifikat mha easy-rsa. Installera easy-rsa:
== Installera easy-rsa ==
 
Man kan generera alla certifikat direkt med openssl kommandon om man vill, men för att göra livet lite enklare kommer vi använda oss av lite skript från OpenVPN som heter easy-rsa:
{{RootCmd|apt-get install easy-rsa}}
{{RootCmd|apt-get install easy-rsa}}
Vi kommer agera vårt eget CA, ''Certificate Authority'', och signera våra nycklar som det CA.


=== Generera CA certifikat ===
Välj en plats där inställningar och certifikaten ska genereras.
 
{{Warning|Det är viktigt att de privata nycklarna inte faller i orätta händer. Välj därför en plats där vanliga användare inte har access. Det är också viktigt att du gör säkerhetskopior på certifikaten. Annars riskerar du behöva skapa nya ifall du tappar bort ditt CA certifikat.}}
Kopiera easy-rsa skripten till en plats där nycklarna tillfälligt ska hamna. Vi väljer att lägga mappen under /root:
Vi väljer att lägga dessa under /root:
{{RootCmd|cp -r /usr/share/easy-rsa /root}}
{{RootCmd|cp -r /usr/share/easy-rsa /root}}


Gå till easy-rsa mappen:
Gå till easy-rsa mappen:
{{RootCmd|cd /root/easy}}
{{RootCmd|cd /root/easy}}
== Generera CA certifikat ==


Kopiera filen vars och anpassa den för våra behov:
Kopiera filen vars och anpassa den för våra behov:
Line 27: Line 30:
}}
}}


{{Warning|Följande kommando raderar alla nycklar under keys mappen. Se till att inget viktigt ligger där.}}
{{Warning|Följande kommandon raderar alla nycklar under keys mappen. Se till att inga nycklar du vill spara ligger där.}}
Läs in dina inställningar, radera alla tidigare genererade certifikat och skapa ditt CA certifikat:
Läs in dina inställningar, radera alla tidigare genererade certifikat och skapa ditt CA certifikat:
{{RootCmd|. ./vars-example.com
{{RootCmd|. ./vars-example.com
Line 34: Line 37:
}}
}}


Bygg Diffie-Hellman parametrarna:
Bygg nödvändiga Diffie-Hellman parametrar:
{{RootCmd|./build-dh}}
{{RootCmd|./build-dh}}


=== Generera server certifikat ===
=== Generera server certifikat ===


Förutsätter att vi har skapat vårt CA certifikat. För att skapa ett server certifikat för ldap01.example.com kör kommandot i easy-rsa katalogen:
Förutsätter att vi har skapat vårt CA certifikat. För att skapa ett server certifikat för www.example.com kör kommandot i easy-rsa katalogen:
{{RootCmd|./build-key-server ldap01.example.com}}
{{RootCmd|./build-key-server www.example.com}}
 
Följande filer har nu skapats i keys mappen:
* www.example.com.crt
* www.example.com.csr (Certificate Signing Request)
* www.example.com.key (privat nyckel)
 
== Installera CA certifikatet ==
 
Kopiera CA certifikatet till mappen /usr/local/share/ca-certificates samt ge den ett lite tydligare namn:
{{RootCmd|cp keys/ca.crt  /usr/local/share/ca-certificates/example.com-ca.crt}}
 
Kör sedan kommandot:
{{RootCmd|update-ca-certificates}}
 
{{Note|Certifikatet som installeras under /etc/ssl/certs kommer döpas till example.com-ca.pem}}
 
Du behöver installera detta certifikat på alla maskiner som ska kunna kontrollera att alla övriga certifikat kommer från dig.
 
== Installera webserver certifikatet ==
 
Detta behöver bara göras på den maskin som kör webservern. Kopiera den privata nyckeln till mappen /etc/ssl/private och .crt filen till /etc/ssl/certs:
{{RootCmd|cp keys/www.example.com.key /etc/ssl/private
|cp keys/www.example.com.crt /etc/ssl/certs}}
Fixa sedan till ägare och rättigheter på filerna:
{{RootCmd|chown root:ssl-cert /etc/ssl/private/www.example.com.key
|chmod 640 /etc/ssl/private/www.example.com.key
|chown root:root /etc/ssl/certs/www.example.com.crt
|chmod 644 /etc/ssl/certs/www.example.com.crt}}
 
[[Category:GammalGuide]]

Latest revision as of 14:01, 12 August 2023

Denna guide beskriver hur man genererar sitt egna CA (Certificate Authority) certifikat och ett certifikat för en webserver i Debian Jessie. Vår domän i exemplen är example.com och vår webserver har hostname www.example.com.

Installera easy-rsa

Man kan generera alla certifikat direkt med openssl kommandon om man vill, men för att göra livet lite enklare kommer vi använda oss av lite skript från OpenVPN som heter easy-rsa:

root # apt-get install easy-rsa

Välj en plats där inställningar och certifikaten ska genereras.

Varning: Det är viktigt att de privata nycklarna inte faller i orätta händer. Välj därför en plats där vanliga användare inte har access. Det är också viktigt att du gör säkerhetskopior på certifikaten. Annars riskerar du behöva skapa nya ifall du tappar bort ditt CA certifikat.

Vi väljer att lägga dessa under /root:

root # cp -r /usr/share/easy-rsa /root

Gå till easy-rsa mappen:

root # cd /root/easy

Generera CA certifikat

Kopiera filen vars och anpassa den för våra behov:

root # cp vars vars-example.com

De variabler vi ändrar på är (anpassa enligt dina uppgifter):

export KEY_COUNTRY="SE"
export KEY_PROVINCE="<Landskap/Kommun>"
export KEY_CITY="<Stad>"
export KEY_ORG="example.com"
export KEY_EMAIL="root@example.com"
#export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="root"


Varning: Följande kommandon raderar alla nycklar under keys mappen. Se till att inga nycklar du vill spara ligger där.

Läs in dina inställningar, radera alla tidigare genererade certifikat och skapa ditt CA certifikat:

root # . ./vars-example.com
root #
./clean-all
root #
./build-ca

Bygg nödvändiga Diffie-Hellman parametrar:

root # ./build-dh

Generera server certifikat

Förutsätter att vi har skapat vårt CA certifikat. För att skapa ett server certifikat för www.example.com kör kommandot i easy-rsa katalogen:

root # ./build-key-server www.example.com

Följande filer har nu skapats i keys mappen:

  • www.example.com.crt
  • www.example.com.csr (Certificate Signing Request)
  • www.example.com.key (privat nyckel)

Installera CA certifikatet

Kopiera CA certifikatet till mappen /usr/local/share/ca-certificates samt ge den ett lite tydligare namn:

root # cp keys/ca.crt /usr/local/share/ca-certificates/example.com-ca.crt

Kör sedan kommandot:

root # update-ca-certificates


Notering: Certifikatet som installeras under /etc/ssl/certs kommer döpas till example.com-ca.pem


Du behöver installera detta certifikat på alla maskiner som ska kunna kontrollera att alla övriga certifikat kommer från dig.

Installera webserver certifikatet

Detta behöver bara göras på den maskin som kör webservern. Kopiera den privata nyckeln till mappen /etc/ssl/private och .crt filen till /etc/ssl/certs:

root # cp keys/www.example.com.key /etc/ssl/private
root #
cp keys/www.example.com.crt /etc/ssl/certs

Fixa sedan till ägare och rättigheter på filerna:

root # chown root:ssl-cert /etc/ssl/private/www.example.com.key
root #
chmod 640 /etc/ssl/private/www.example.com.key
root #
chown root:root /etc/ssl/certs/www.example.com.crt
root #
chmod 644 /etc/ssl/certs/www.example.com.crt