Portál AbcLinuxu, 3. června 2024 01:46

Vytvoření vlastní CA a generování certifikátu (nejen) pro Apache

Začněme vytvořením konfiguračního souboru openssl.conf s tímto obsahem:

[ ca ]
default_ca      = CA_default            # The default ca section
[ CA_default ]
dir            = .                    # top dir
database       = $dir/index.txt        # index file.
new_certs_dir  = $dir/newcerts         # new certs dir
certificate    = $dir/CAcert.pem       # The CA cert
serial         = $dir/serial           # serial no file
private_key    = $dir/CAkey.pem#       CA private key
RANDFILE       = $dir/.rand    # random number file
default_days   = 3650                  # 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

V lokálním adresáři dále vytvoříme soubor serial s obsahem "01", prázdný soubor index.txt a adresář newcerts.

Vygenerování CA

openssl req -new -x509 -days 7300 -keyout CAkey.pem -out CAcert.pem

Vyplňte poctivě vše potřebné a hlavně zvolte dobré heslo.

Dalším krokem je vytvoření požadavku na certifikát.

Požadavek na certifikát

openssl req -new -nodes -out www.domena.cz.csr

Případně s parametrem -keyout "jméno souboru" místo standardního privatekey.pem. Heslo nezadávejte, jinak při každém rebootu serveru jej budete muset zadat na konsoli.

Podpis požadavku autoritou

openssl ca -in www.domena.cz.csr -out www.domena.cz.pem -config ./openssl.conf

Zde je nutno zadat heslo zvolené při vytváření CA

Konfigurace Apache

Tímto postupem jsme dostali soubory: www.domena.cz.pem privkey.pem CAcert.pem, které nakopírujeme někam, kde na ně apache uvidí (a nejlépe nikdo jiný). A v jeho konfu v sekci SSL nastavíme:

SSLCertificateFile /etc/httpd/ssl/www.domena.cz.pem
SSLCertificateKeyFile /etc/httpd/ssl/privkey.pem
SSLCACertificateFile /etc/httpd/ssl/CAcert.pem

Konfigurace prohlížečů

Do všech musíme naimportovat CAcert.pem

Firefox

V menu Preferences/Advanced/Encryption je tlačítko "View Certificates", v okně pak záložka "Authorities" a tam tlačítko "Import" soubor CAcert.pem a zaškrnout volby (já zaškrtl všechny). Při dalším přístupu na https by již neměl požadovat schválení vyjímky a při najetí na ikonu webu napsat: Verified by: "jmeno zadane pri vytvareni requestu".

IE 6.0

V menu Nástroje/Možnosti internetu. Pak záložka "Obsah", kde je tlačítko "Certifikáty". Kdekoliv (IE si to pak založí sám), klepnout na "Importovat" a vybrat soubor CAcert.pem. Standardně se nezobrazují soubory s touto příponou, tak je nutně změnit filtr, nebo název napsat ručně. Poté zobrazí SHA otisk certifikátu a po potvrzení se už dostanete bez ptaní na web.

Opera

V menu Tools/Preferences a záložce "Advanced" je tlačítko "Manage Cert." Tam klepněte na záložku "Authorities" a tlačítko "Import". Pak nezapomeňte odškrtnout check box o potvrzování.

Dokument vytvořil: Heron, 25.8.2008 15:36 | Poslední úprava: Pev, 20.7.2010 18:50 | Další přispěvatelé: SPM, Heron | Historie změn | Zobrazeno: 11720×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.