#language cs ## 25.08.2015 AK ---- '''česky''' | [[CSRGenerator|english]] ---- ## stránka byla přejmenována z VhostsApache Informace o nastavení [[Technology/TechnicalSupport/SysAdmin/ApacheServer/CZ| serveru Apache]] - odkazy, aby sloužil několika webům HTTPS na jedné IP adrese, viz též VhostTaskForce. Názvy všech domén, které chcete použít, musí být registrovány u http://www.cacert.org/, než můžete generovat certifikát. = Generování žádosti o certifikát pro webový server = Nejsnazší způsob je použít skript Generátor žádosti o podpis certifikátu (CSR) (soubor "csr") pro shell: [[http://svn.cacert.org/CAcert/Software/CSRGenerator/csr|Generátor CSR]] Lokálně ho uložte a pak spusťte, nezapomeňte opakovat běžný název (!CommonName) i v alternativním názvu předmětu (!SubjectAltName); krátký název serveru je použit jen pro název souboru. Příklad činnosti skriptu: ## {{{ || `[example@example ~]$ sh csr` || || || `Private Key and Certificate Signing Request Generator` || Generátor privátního klíče a žádosti o podpis certifikátu || || `This script was designed to suit the request format needed by` || Tento skript byl navržen pro formát žádosti potřebné || || `the CAcert Certificate Authority: www.cacert.org` || pro certifikační autoritu CAcert: www.cacert.org || || `Short Hostname (ie. imap big_srv www2): example` || Krátký název serveru || || `FQDN/CommonName (ie. www.example.com) : example.org` || FQDN/běžný název serveru (viz Glosář níže) || || `Type SubjectAltNames for the certificate, one per line. Enter a blank line to finish` || Zadávejte alternativní názvy jeden na řádek, prázdný řádek ukončí || || `SubjectAltName: DNS:example.org` || || || `SubjectAltName: DNS:www.example.org` || || || `SubjectAltName: DNS:foo.example.org` || || || `SubjectAltName: DNS:www.foo.example.org` || || || `SubjectAltName: DNS:bar.example.org` || || || `SubjectAltName: DNS:www.bar.example.org` || || || `SubjectAltName: DNS:example.bar` || || || `SubjectAltName: DNS:www.example.bar` || || || `SubjectAltName: DNS:` || || || `Running OpenSSL...` || Spouštím OpenSSL... || || `Generating a 2048 bit RSA private key` || Generuji 2048-bitový privátní klíč RSA || || `........................................................+++` || || || `................................................+++` || (a zároveň veřejný klíč) || || `writing new private key to '/home/example/example_privatekey.pem'` || zapisuji nový privátní klíč do... || || `-----` || || || `Copy the following Certificate Request and paste into CAcert website to obtain a Certificate.` || Zkopírujte následující žádost (CSR) a vložte ji do formuláře webu CAcert || || `When you receive your certificate, you 'should' name it something like example_server.pem` || Když obdržíte certifikát, ''měli byste'' ho pojmenovat example_server.pem || . `-----BEGIN CERTIFICATE REQUEST-----` . `MIIDBjCCAe4CAQAwFjEUMBIGA1UEAxMLZXhhbXBsZS5vcmcwggEiMA0GCSqGSIb3` . `DQEBAQUAA4IBDwAwggEKAoIBAQClsXcoj86dyYlIe96khbZqYtyV03ak+teyClv5` . `80I46irKcYQx4CFiirTCuusiAwsDfnDyZvnrwoxaUkc5nkw4Tlmb1j/y91U8rusX` . `Zu43rep8s0zs7aMx/q34TTCc5Mru8UQjbnj9aCX1DF+8cA0ayQMm1BOFv8nTFcjK` . `SnI5NdxRKDyqeH3KUgfxgGkBVU4VFVRU9XKD/zprzj+hWFT+fsjF7yQm0ZXDXaJ+` . `0Yr9mDQjfzdLP3GObc7y7rwz8a5ozATwfpqZiWYjM34oKFPSj7kwLdA+otx0glGG` . `e+P7G/E2uE+lbzi41CSFgKAjw3E0l1x47NoVD6DADS5mYIatAgMBAAGggaowgacG` . `CSqGSIb3DQEJDjGBmTCBljCBkwYDVR0RBIGLMIGIggtleGFtcGxlLm9yZ4IPd3d3` . `LmV4YW1wbGUub3Jngg9mb28uZXhhbXBsZS5vcmeCE3d3dy5mb28uZXhhbXBsZS5v` . `cmeCD2Jhci5leGFtcGxlLm9yZ4ITd3d3LmJhci5leGFtcGxlLm9yZ4ILZXhhbXBs` . `ZS5iYXKCD3d3dy5leGFtcGxlLmJhcjANBgkqhkiG9w0BAQQFAAOCAQEAHFiUDgVc` . `lDGoq+2kLmQxKtYagc37sugw4OoutILxrXF0zJUSplF4Aco/KhBcSLQUpsW5u11Q` . `tcxj4DqXrxsoZuawATKTGQXDaAxL/ud2FsXyhe2FC1h0id2cH12GsnDSziuFCM+t` . `rz05dqnW6mZR5OHILlYPoIPNqk3tbkIyOs4GplL9PZLNjSKJ3oeXJXn1iSI6oegB` . `dBJQMByDZsh7Xd/d1OFJMQq3TFMqmLEXErkXQnOmzBN375AHGYGZwozhVPjhfFZ1` . `74AvmxOe17+OLm1j10EA9J/5jLzIgK0vs7HgK0131S/JAV4Ik9JccAWByGlxeuVb` . `4Kf5vAucZZVe7g==` . `-----END CERTIFICATE REQUEST-----` || `The Certificate request is also available in /home/example/example_csr.pem` || Žádost o podpis certifikátu je také uložena v souboru /home/example/example_csr.pem || || `The Private Key is stored in /home/example/example_privatekey.pem` || Privátní klíč je uložen v souboru /home/example/example_privatekey.pem || ## }}} Pak vložte svou žádost do webového formuláře na web cacert.org (pro příklad konfigurace, uvedený dále, požádejte o certifikát třídy 1) a když dostanete serverový certifikát, uložte ho jako example_server.pem. == Příklad konfigurace == Můžete zadat IP adresu nebo použít skupinu (wild card), ale nemůžete je míchat. Ke konfiguraci Apache lze přidat ''"Listen 192.168.0.1:443"''. {{{ NameVirtualHost 192.168.0.1:443 # nebo # NameVirtualHost *:443 # foo.example.org:443 # nebo # ServerName foo.example.org:443 UseCanonicalName On SSLEngine on SSLCertificateFile /etc/apache/example_server.pem SSLCertificateKeyFile /etc/apache/example_privatekey.pem SSLCipherSuite HIGH SSLProtocol all -SSLv2 DocumentRoot "/var/www/foo.example.org" Options Indexes AllowOverride None Order allow,deny Allow from all # www.foo.example.org:443 # nebo # ServerName www.foo.example.org:443 UseCanonicalName On SSLEngine on SSLCertificateFile /etc/apache/example_server.pem SSLCertificateKeyFile /etc/apache/example_privatekey.pem SSLCipherSuite HIGH SSLProtocol all -SSLv2 Redirect / https://foo.example.org/ # example.foo:443 # nebo # ServerName example.foo:443 UseCanonicalName On SSLEngine on SSLCertificateFile /etc/apache/example_server.pem SSLCertificateKeyFile /etc/apache/example_privatekey.pem SSLCipherSuite HIGH SSLProtocol all -SSLv2 Redirect / https://foo.example.org/ # www.example.foo:443 # nebo # ServerName www.example.foo:443 UseCanonicalName On SSLEngine on SSLCertificateFile /etc/apache/example_server.pem SSLCertificateKeyFile /etc/apache/example_privatekey.pem SSLCipherSuite HIGH SSLProtocol all -SSLv2 Redirect / https://foo.example.org/ # bar.example.org:443 # nebo # ServerName bar.example.org:443 UseCanonicalName On SSLEngine on SSLCertificateFile /etc/apache/example_server.pem SSLCertificateKeyFile /etc/apache/example_privatekey.pem SSLCipherSuite HIGH SSLProtocol all -SSLv2 DocumentRoot "/var/www/bar.example.org" Options Indexes AllowOverride None Order allow,deny Allow from all # www.bar.example.org:443 # nebo # ServerName www.bar.example.org:443 UseCanonicalName On SSLEngine on SSLCertificateFile /etc/apache/example_server.pem SSLCertificateKeyFile /etc/apache/example_privatekey.pem SSLCipherSuite HIGH SSLProtocol all -SSLv2 Redirect / https://bar.example.org/ # example.bar:443 # nebo # ServerName example.bar:443 UseCanonicalName On SSLEngine on SSLCertificateFile /etc/apache/example_server.pem SSLCertificateKeyFile /etc/apache/example_privatekey.pem SSLCipherSuite HIGH SSLProtocol all -SSLv2 Redirect / https://bar.example.org/ # www.example.bar:443 # nebo # ServerName www.example.bar:443 UseCanonicalName On SSLEngine on SSLCertificateFile /etc/apache/example_server.pem SSLCertificateKeyFile /etc/apache/example_privatekey.pem SSLCipherSuite HIGH SSLProtocol all -SSLv2 Redirect / https://bar.example.org/ }}} == Chyby neshody doménového jména == Pravděpodobně jsou různé způsoby, jak dostat chybové hlášení "Domain Name Mismatch" při nastavování Apache pro více virtuálních HTTPS serverů. Příklad zobrazení této chyby je zde: https://en.wiki.aktivix.org/CAcert === Použití kanonického názvu (UseCanonicalName) === Apache má standardně funkci !UseCanonicalName zapnutou (On) a pak můžete použít jeden !VirtualHost s několika !ServerAliasy, a všechny ty !ServerAliasy i !ServerName musí být uloženy v certifikátu. Pokud ovšem máte !UseCanonicalName vypnuto (Off), pak nemůžete použít žádný !ServerAlias a musíte mít jeden !VirtualHost na každý !ServerName a nastavit všechny !VirtualHosty pro použití téhož certifikátu. Viz dokumentaci Apache: http://httpd.apache.org/docs/2.0/mod/core.html#usecanonicalname === Opakování CommonName jako SubjectAltName === !CommonName se ignoruje, máte-li aspoň jedno !SubjectAltName, takže je nejlépe opakovat !CommonName jako !SubjectAltName. Když to neuděláte, pak nastavení !VirtualHost se !ServerName stejným jako !CommonName vyústí hlášením chyby Domain Name Mismatch. == Generátor CSR pro Windows == http://www2.futureware.at/~philipp/CSRGenerator.zip == Viz též == * https://docs.indymedia.org/view/Sysadmin/CaCertSsl#HTTP_multiple_domain_names * http://www.frank4dd.com/webcert/cgi-bin/buildrequest.cgi = Glosář = * !CanonicalName - "jméno podle pravidel", tak, jak je zapsáno v DNS záznamu A nebo AAAA, nikoli alias CNAME * !CommonName - "běžné jméno", obvyklý název, zpravidla FQDN, ale i prostý bez domény * FQDN - (Fully Qualified Domain Name), plně kvalifikovaný doménový název, zpravidla A/AAAA s doménou nebo i CNAME s doménou * Hostname - název "hosta" tj. v našem případě počítače, který je webovým serverem * !ServerAlias - alternativní název nebo přezdívka nebo CNAME serveru * !ServerName - (hlavní) název serveru, zde jde o ten, který je uveden v certifikátu na úvodní stránce, pro nějž je certifikát vystaven * Short Hostname - krátký název serveru, nekvalifikovaný (bez domény), jednoduchý (například GOLEM nebo ALKA) * !SubjectAltName - Alternativní název subjektu, používá se v certifikátech pro aliasy serverů (SAN, Subject Alternate Names) * !UseCanonicalName - direktiva konfigurace Apache (On/Off), mění režim hledání/kontroly názvu webového serveru * !VirtualHost - klausule konfigurace jednoho virtuálního webového serveru v Apache ---- . CategoryGuide . CategorySoftware