Erinevus lehekülje "Sertifikaadid" redaktsioonide vahel
(Kustutatud lõigud, mis peaksid kuuluma kas SSH või veebiserveri pala juurde) |
|||
(ei näidata 2 kasutaja 3 vahepealset redaktsiooni) | |||
1. rida: | 1. rida: | ||
Kõnekeeli öeldakse sertifikaadi kohta mugavalt "sert" ehk mitmuses "serdid". | Kõnekeeli öeldakse sertifikaadi kohta mugavalt "sert" ehk mitmuses "serdid". | ||
− | Juhendi kasutamiseks on vajalik [http://www.openssl.org/ OpenSSL] ver | + | Juhendi kasutamiseks on vajalik [http://www.openssl.org/ OpenSSL] ver 1.1.1 või uuem. |
Oletame, et meil on 2 asutust: sertifitseerimiskeskuse rollis "AS AgentuurC" ja teine asutus "OÜ Kasutaja", kes tahab oma veebi- või postiserverile sertifikaati. | Oletame, et meil on 2 asutust: sertifitseerimiskeskuse rollis "AS AgentuurC" ja teine asutus "OÜ Kasutaja", kes tahab oma veebi- või postiserverile sertifikaati. | ||
7. rida: | 7. rida: | ||
===CA, ehk sertifitseerimiskeskuse tekitamine=== | ===CA, ehk sertifitseerimiskeskuse tekitamine=== | ||
− | Tekita CA võtmed | + | Tekita CA võtmed |
− | $ openssl genrsa -des3 -out ca.key | + | $ openssl genrsa -des3 -out ca.key 4096 |
Allkirjasta CA sertifikaat iseendaga | Allkirjasta CA sertifikaat iseendaga | ||
− | $ openssl req -new -x509 | + | $ openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -addext "keyUsage=critical,cRLSign,keyCertSign" |
EE | EE | ||
. | . | ||
30. rida: | 30. rida: | ||
Tekita sertifikaadi allakirjutamise päring ja saada see (.csr fail) CA-le | Tekita sertifikaadi allakirjutamise päring ja saada see (.csr fail) CA-le | ||
− | $ openssl req -new | + | $ openssl req -new -key kasutaja.key -out kasutaja.csr |
EE | EE | ||
. | . | ||
43. rida: | 43. rida: | ||
$ openssl req -text -noout -in kasutaja.csr | $ openssl req -text -noout -in kasutaja.csr | ||
... | ... | ||
− | $ openssl x509 -req | + | $ openssl x509 -req -days 1095 -CA ca.crt -CAkey ca.key -CAcreateserial \ |
-out kasutaja.crt -in kasutaja.csr | -out kasutaja.crt -in kasutaja.csr | ||
129. rida: | 129. rida: | ||
ning kui selle sisestamise asemel enterit vajutada jäetakse krüpteerimine tegemata. | ning kui selle sisestamise asemel enterit vajutada jäetakse krüpteerimine tegemata. | ||
− | Üldiselt on soovitatav jätta serverite võtmed ilma täiendava krüpteerimiseta ning kasutaja sertifikaadid (nt VPN | + | Üldiselt on soovitatav jätta serverite võtmed ilma täiendava krüpteerimiseta ning kasutaja sertifikaadid (nt VPN jms jaoks) krüpteerida, kuna kasutajate võtmed võivad kergemini kompromiteeruda. Serverite puhul on vaja aga sageli teenuseid automaatselt või kaugelt restartida ning sel juhul pole võimalik pidevalt võtit sisestada. |
− | kasutajate võtmed võivad kergemini kompromiteeruda | ||
− | võtit sisestada. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Viimane redaktsioon: 1. oktoober 2019, kell 09:57
Kõnekeeli öeldakse sertifikaadi kohta mugavalt "sert" ehk mitmuses "serdid".
Juhendi kasutamiseks on vajalik OpenSSL ver 1.1.1 või uuem.
Oletame, et meil on 2 asutust: sertifitseerimiskeskuse rollis "AS AgentuurC" ja teine asutus "OÜ Kasutaja", kes tahab oma veebi- või postiserverile sertifikaati.
Sisukord
CA, ehk sertifitseerimiskeskuse tekitamine
Tekita CA võtmed
$ openssl genrsa -des3 -out ca.key 4096
Allkirjasta CA sertifikaat iseendaga
$ openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -addext "keyUsage=critical,cRLSign,keyCertSign" EE . Tallinn AS AgentuurC . AgentuurC Test Root CA helpdesk@agentuurc.ee
Kasutaja sertifikaadi tegemine
Tekita kasutaja võtmed
$ openssl genrsa -out kasutaja.key 2048
Tekita sertifikaadi allakirjutamise päring ja saada see (.csr fail) CA-le
$ openssl req -new -key kasutaja.key -out kasutaja.csr EE . Tartu OÜ Kasutaja Müügiosakond www.oukasutaja.ee info@oukasutaja.ee
CA uurib päringut ja allkirjastab sertifikaadi
$ openssl req -text -noout -in kasutaja.csr ... $ openssl x509 -req -days 1095 -CA ca.crt -CAkey ca.key -CAcreateserial \ -out kasutaja.crt -in kasutaja.csr
Kui masinal on mitu nime
Tekita sertifikaadi laiendusfail cext.txt ja saada ta koos .csr failiga CA-le
$ cat cext.txt subjectAltName = DNS:www.oukasutaja.ee,DNS:mail.oukasutaja.ee basicConstraints = critical,CA:FALSE
CA allkirjastab sertifikaadi ja lisab laiendused
$ openssl x509 -req -sha256 -days 1095 -CA ca.crt -CAkey ca.key -CAcreateserial \ -out kasutaja.crt -in kasutaja.csr -extfile cext.txt
Sertifikaadi sisu vaatamine
$ openssl x509 -noout -text -in kasutaja.crt
Sertifikaadi tühistamine
Vaja on tühistada üks kasutajasertifikaat
$ openssl ca -config ca.conf -revoke taotlused/kasutaja.crt
Mis tekitab index.txt faili kirje (seal on näha R tähte õige rea ees, mis tähendab revoked)
$ openssl ca -gencrl -out "crl.pem" -config ca.conf
Mis tekitab crl.pem faili mida meil vaja. Configuratsioonifail ca.conf ise võiks olla järgnev
[ ca ] default_ca = CA_default # The default ca section [ CA_default ] dir = ./ # top dir database = index.txt # index file. new_certs_dir = newcerts # new certs dir certificate = ca.crt # The CA cert private_key = ca.key # CA private key default_days = 1024 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # md to use policy = policy_any # default policy email_in_dn = no # Don't add the email into cert DN name_opt = ca_default # Subject name display option cert_opt = ca_default # Certificate display option copy_extensions = none # Don't copy extensions from request [ policy_any ] countryName = supplied stateOrProvinceName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional
Näiteks OpenVPNi puhul tuleb tekkinud crl.pem lisada configuratsiooni järgnevalt
crl-verfiy crl.pem
Selle faili sisu vaatamiseks on käsk
$ openssl crl -in crl.pem -noout -text
Iseallkirjastatud sertifikaat
Lihtsamal juhul võib pruukida iseallkirjastatud sertifikaati (i.k. self-signed certificate)
$ openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -keyout kasutaja.key -out kasutaja.crt
Kui skriptimisel on vaja vältida konsoolilt pärimist, saab parameetrid kõik käsureal anda
$ openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -keyout kasutaja.key -out kasutaja.crt -subj "/C=EE/ST=/L=Tartu/O=Kasutaja/CN=www.oukasutaja.ee" -batch
Krüpteerida või mittekrüpteerida võtit?
Krüpteeritud võti tähendab põhimõtteliselt seda, kas kasutades enda privaatset võtit küsitakse täiendavat parooli või ei. Tavaliselt küsib openssl võtme genereerimise ajal parooli ning kui selle sisestamise asemel enterit vajutada jäetakse krüpteerimine tegemata.
Üldiselt on soovitatav jätta serverite võtmed ilma täiendava krüpteerimiseta ning kasutaja sertifikaadid (nt VPN jms jaoks) krüpteerida, kuna kasutajate võtmed võivad kergemini kompromiteeruda. Serverite puhul on vaja aga sageli teenuseid automaatselt või kaugelt restartida ning sel juhul pole võimalik pidevalt võtit sisestada.