Mainos / Advertisement:

Ero sivun ”Openssl” versioiden välillä

Kohteesta Taisto
Siirry navigaatioon Siirry hakuun
Rivi 132: Rivi 132:
 
* -out rootCA.crt = sertifikaatti tiedosto
 
* -out rootCA.crt = sertifikaatti tiedosto
  
== Luodaan alisertifikaatti ==
+
== CSR ja CRT ==
  
 
ROOT sertifikaatti varmentaa alisertifikaatit. Luo ensin root sertifikaatti ensin.
 
ROOT sertifikaatti varmentaa alisertifikaatit. Luo ensin root sertifikaatti ensin.

Versio 11. kesäkuuta 2014 kello 18.43

Asennus

1. Asennetaan Openssl

 aptitude install openssl

2. Luodaan kansio etc/ssl/localcerts

mkdir /etc/ssl/localcerts

openssl.cnf

Laitetaan openssl.conf tiedostoon oletuskonffit helpottamaan myöhempää käyttöä. Korjaa *_default nimellä olevat kohdat sopivilla vaihtoehdoilla.

 [ req_distinguished_name ]
 countryName                     = Country Name (2 letter code)
 countryName_default             = FI

Oletus maa-asetus (maakoodi), esim. FI

 countryName_min                 = 2
 countryName_max                 = 2
 

Määritä lääni/provinssi, esim. Uusimaa

 stateOrProvinceName             = State or Province Name (full name)
 stateOrProvinceName_default     = Lääni/Provinssi


Kaupungin nimi, esim. Helsinki
 localityName                    = Locality Name (eg, city)
 localityName_default            = Kaupunki


Organisaation nimi, esimerkiksi yritys

 0.organizationName              = Organization Name (eg, company)
 0.organizationName_default      = Organisaation nimi
 

Toinen organisaation nimi (vapaaavalintainen)

 # we can do this but it is not needed normally :-)
 #1.organizationName             = Second Organization Name (eg, company)
 #1.organizationName_default     = World Wide Web Pty Ltd
 organizationalUnitName          = Organizational Unit Name (eg, section)
 #organizationalUnitName_default =


Sertifikaatille nimi (verkko-osoite)

 commonName                      = Common Name (e.g. server FQDN or YOUR name)
 commonName_max                  = 64

Sähköpostiosoite ssl sertifikaatilla (valinnainen).

 emailAddress                    = Email Address
 emailAddress_max                = 64
 emailAddress_default            = [email protected]


Määritettyjä *_default ei tarvitse määrittää etukäteen mutta suositeltavaa on. Tämä helpottaa sertifikaatin tekoa.

Lisätään subjectAltName = @alt_names konffi tiedostoon

 [ v3_req ]
 #Extensions to add to a certificate request
 basicConstraints = CA:FALSE
 keyUsage = nonRepudiation, digitalSignature, keyEncipherment
 subjectAltName = @alt_names

Lisää alt_names konffiin ja verkko-osoitteet, jossa sertifikaatti on voimassa

 [alt_names]
 DNS.1 = helenius.dy.fi
 DNS.2 = datatekniikka.fi

ja IP-osoiteet jossa sertifikaatti voimassa.

 IP.1 = 0.0.0.0
 IP.2 = 1.1.1.1


Esimerkkejä SubjectAltName

Kaikki numeroidaan loogisesti erikseen... Openssl ei ilmoita virheitä numeroinnista, vaan menee aina alimman mukaan (lukee päälle)

 DNS.1 = *.domain.com

Wildcard eli suomeksi jokeri, on sertifikaatti joka on voimassa kaikissa alidomaineissa. Esimerkiksi: www.domain.com ja m.domain.com on automaattisesti wildcard alla... HUOM! Ei domain.com ja www.name.domain.com ole wildcard sertifikaatissa.

 DNS.2 = domain.com

Ylätason domain

 DNS.3 = www.domain.com

Alidomain, esim. www.domain.com ja m.domain.com.

 DNS.4 = www.domain2.com

Sertifikaatit voi osoittaa usealle eri domainille.

 IP.1 0.0.0.0.

Laitetaan IP-osoiteet, missä sertifikaatti on voimassa.

 IP.2 1.1.1.1

Myös useita IP-osoitteita voi määrittää

RootCA - Root sertifikaatti

1. Luodaan RSA avain

 openssl genrsa -des3 -out /etc/ssl/localcerts/rootCA.key 4096
  • des3 = salasana suojattu
  • rootCA.key = tiedoston nimi
  • 4096 = RSA avaimen pituus

2. Luodaan ROOT sertifikaatti

openssl req -x509 -new -nodes -key /etc/ssl/localcerts/rootCA.key -days 3650 -out /etc/ssl/localcerts/rootCA.crt
  • -days = sertifikaatin voimassaoloaika, esimerkissä 10 vuotta
  • -key = tiedosto jossa RSA avain sijaitsee
  • -key rootCA.key RSA avain tiedosto, jonka loit aikaisemmin
  • -out rootCA.crt = sertifikaatti tiedosto

CSR ja CRT

ROOT sertifikaatti varmentaa alisertifikaatit. Luo ensin root sertifikaatti ensin.

1. Luodaan RSA avain

 openssl genrsa -des3 -out /etc/ssl/localcerts/ssl.key 2048
  • des3 = salasana suojattu
  • ssl.key = tiedoston nimi
  • 2048 = RSA avaimen pituus

Openssl on bugi jos laittaa alisertifikaateille salasana suojaus ja käyttää wildcard ominaisuutta.

2. Luodaan sertifikaatin allekirjoituspyyntö

 openssl req -new -out ssl.csr -key /etc/ssl/localcerts/ssl.key -config /etc/ssl/openssl.cnf

3. Luodaan sertifikaatti ROOT sertifikaatin alle

 openssl x509 -req -in /etc/ssl/localcerts/ssl.csr -CA /etc/ssl/localcerts/rootCA.crt -CAkey /etc/ssl/localcerts/rootCA.key -CAcreateserial  -out /etc/ssl/localcerts/ssl.crt -days 365 -extensions v3_req -extfile /etc/ssl/openssl.cnf
  • -days 365 = sertifikaatin voimassaoloaika
  • -extensions v3_req -extfile /etc/ssl/openssl.cnf = Openssl konffi tiedosto, josta haetaan subjectAltName tiedot

Sertifikaattien siirto pfx-tiedoston avulla

Openssl sertifikaattia voidaan käyttää myös muillakin webbiservereillä. Voit siirtää mm. IIS:ään pfx tiedoston avulla.

 openssl pkcs12 -export -out ssl.pfx -inkey ssl.key -in ssl.crt -certfile ssl.crt

Sinun tulee määrittää tiedostoon salasana.


  • -export -out ssl.pfx = PFX tiedosto jonne sertifikaatit laitetaan
  • -inkey ssl.key = RSA avain tiedosto
  • -certfile ssl.crt = Root sertifikaatti

Katso lisää

Apache SSL

Mainos / Advertisement: