Ero sivun ”Openssl” versioiden välillä
Rivi 130: | Rivi 130: | ||
0.organizationName = Organization Name (eg, company) | 0.organizationName = Organization Name (eg, company) | ||
0.organizationName_default = Organisaation nimi | 0.organizationName_default = Organisaation nimi | ||
− | + | ||
# we can do this but it is not needed normally :-) | # we can do this but it is not needed normally :-) | ||
#1.organizationName = Second Organization Name (eg, company) | #1.organizationName = Second Organization Name (eg, company) | ||
#1.organizationName_default = World Wide Web Pty Ltd | #1.organizationName_default = World Wide Web Pty Ltd | ||
− | + | ||
organizationalUnitName = Organizational Unit Name (eg, section) | organizationalUnitName = Organizational Unit Name (eg, section) | ||
#organizationalUnitName_default = | #organizationalUnitName_default = | ||
− | + | ||
commonName = Common Name (e.g. server FQDN or YOUR name) | commonName = Common Name (e.g. server FQDN or YOUR name) | ||
commonName_max = 64 | commonName_max = 64 | ||
− | + | ||
emailAddress = Email Address | emailAddress = Email Address | ||
emailAddress_max = 64 | emailAddress_max = 64 |
Versio 11. kesäkuuta 2014 kello 19.30
Sisällysluettelo
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ää
Yhteenveto
[ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = FI countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Lääni/Provinssi localityName = Locality Name (eg, city) localityName_default = Kaupunki
0.organizationName = Organization Name (eg, company) 0.organizationName_default = Organisaation nimi # 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 = commonName = Common Name (e.g. server FQDN or YOUR name) commonName_max = 64 emailAddress = Email Address emailAddress_max = 64 emailAddress_default = [email protected]
[ v3_req ]
#Extensions to add to a certificate request
basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names
[alt_names] DNS.1 = helenius.dy.fi DNS.2 = datatekniikka.fi IP.1 = 0.0.0.0 IP.2 = 1.1.1.1
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