Obsah
OpenSSL
- konfigurace SSL je buď v
/etc/opensslnebo/usr/share/ssl
certifikáty a klíče
- generovani privátniho klíce
openssl genrsa -des3 -out localhost.key 1024 - vygenerovani privatniho klice bez hesla
openssl rsa -in localhost.key -out localhost.key.unsecure - pozadavek pro certifikacni autoritu
openssl req -new -key localhost.key -out localhost.key.csr - vygenerovani certifikatu provizornim podpisem certifikatu
openssl x509 -req \
-days 30 \
-in localhost.key.csr \
-signkey localhost.key \
-out localhost.cert
Program na vytvoření SSL klíče a certifikátu
#!/bin/sh if test -z $1 then exit fi echo "---------------------------------------" echo "generovani privatniho klice" openssl genrsa -des3 -out $1.key 1024 echo "---------------------------------------" echo "vygenerovani privatniho klice bez hesla" openssl rsa \ -in $1.key \ -out $1.key.unsecure echo "-----------------------------------" echo "pozadavek pro certifikacni autoritu" openssl req -new \ -key $1.key \ -days 730 \ -out $1.key.csr echo "-----------------------------------------------------------" echo "vytvoreni certifikatu podepsani pozadavku vlastnim podpisem" openssl x509 -req \ -days 730 \ -in $1.key.csr \ -signkey $1.key \ -out $1.crt
- vytvoření klíče bez hesla a žádosti pro podpis na CaCert.org pro mailserver
openssl req -nodes -newkey rsa:2048 -keyout server.key -out server.csr -subj "/C=CZ/ST=CZ/L=Ceska Lipa/O=-/OU=-/CN=bart.datron.cz/subjectAltName=DNS:*.talman.cz/subjectAltName=DNS:*.talman.eu/subjectAltName=DNS:*.talman.org/subjectAltName=DNS:*.killy.cz/subjectAltName=DNS:*.jaromir.org/subjectAltName=DNS:*.strojaruv.net/subjectAltName=DNS:*.jlatal.com"
SSL - jiný návod
příprava adresářů
#!/bin/sh DIR=/etc/openssl mkdir $DIR mkdir $DIR/certs mkdir $DIR/crl mkdir $DIR/newcerts mkdir $DIR/private echo "01" > $DIR/serial touch $DIR/index.txt
openssl.cnf
[ ca ] default_ca = CA_default # odkaz na sekci [ CA_default ] dir = /opt/openssl # root adresar certs = $dir/certs # adresarova struktura crl_dir = $dir/crl # CRL database = $dir/index.txt # index soubor new_certs_dir = $dir/newcerts # nove certifikaty certificate = $dir/private/CAcert.pem # CA certifikat serial = $dir/serial # poradove cislo certifikatu crl = $dir/clr/crl.pem # soucasny CRL private_key = $dir/private/CAkey.pem # privatni klic CA RANDFILE = $dir/private/.rand # soubor pro nahodna cilsla #x509_extensions = x509v3_extensions # sekce pro x509 default_days = 365 # jak dlouho plati default_crl_days = 30 # jak dlouho pred novym CRL default_md = md5 # jakou md pouzit preserve = no # DN trideni # CA - policy_match = odkaz z predchozi sekce # match - musi byt stejne # supplied - doplneno # optional - nemusi byt policy = policy_match # odkaz na zabezpeceni [ policy_match ] countryName = match stateOrProvinceName = match localityName = match organizationName = match organizationalUnitName = match commonName = supplied emailAddress = optional # jina moznost [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional ### zadosti o certifikát # [ req ] default_bits = 512 #delka default_keyfile = privkey.pem # klic distinguished_name = req_distinguished_name # odkaz do sekce attributes = req_attributes # odkaz do sekce [ req_distinguished_name ] countryName = Zeme (2 znaky) countryName_default = CZ countryName_min = 2 countryName_max = 2 stateOrProvinceName = Oblast stateOrProvinceName_default = localityName = Mesto localityName_default = organizationName = Organizace organizationName_default = organizationalUnitName = Sekce organizace organizationalUnitName_default= Projekt-blabla commonName = Common Name (mail, server) commonName_default = commonName_max = 64 emailAddress = Email emailAddress_max = 40 emailAddress_default = [ req_attributes ] challengePassword = Heslo challengePassword_min = 4 challengePassword_max = 20
vytvoření Certifikační Autority
#!/bin/sh openssl req -new -x509 -days 3650 -nodes -keyout ./private/CAkey.pem -out ./private/CAcert.pem -config ./openssl.cnf
vytvořit žádost o certifikát
#!/bin/sh openssl req -new -keyout $1-key.pem -out $1-req.pem -config ./openssl.cnf
- Výsledkem je žádost newreq.pem a privátní klíč k zatím nepodepsanému certifikátu newkey.pem (tyto soubory mohou mít stejný název, pak je žádost i klíč v jednom souboru)
privátní klíč bez hesla
#!/bin/sh openssl rsa -in $1-key.pem -out $1-unsec-key.pem
podepsat žádost o certifikát CA
#!/bin/sh openssl ca -out $1-cert.pem -config openssl.cnf -infiles $1-req.pem
vytvořit klientský certifikát
#!/bin/sh openssl ca -gencrl -out crl.pem -config openssl.cnf
vytvoření CRL
openssl ca -gencrl -out cert.crl -config openssl.cnf
výpis CRL
openssl crl -text -in crl.pem
