#language cs ## 20170303 AK ---- '''česky''' | [[FAQ/subjectAltName|english]] ---- = Alternativní název předmětu (subjectAltName, SAN) = == Co je to subjectAltName? == subjectAltName specifikuje přídavné identity předmětu, ale pro názvy počítačů (a vše další definované pro subjectAltName): subjectAltName musí být použit vždy (RFC 3280 4.2.1.7, 1. odstavec). CN se vyhodnocuje, pouze když subjectAltName není přítomen a pouze pro kompatibilitu se starým, nekompatibilním softwarem. Takže nastavíte-li subjectAltName, musíte v něm použít všechny názvy počítačů, e-mailové adresy, atd., ne pouze ty "přídavné". == subjectAltName a analyzátor žádosti (CSR) u CAcert == Analyzátor žádosti o podpis certifikátu (CSR) odstraní všechny obecné názvy (commonNames) a alternativní názvy předmětu (subjectAltNames), nemůže-li systém najít uvedenou doménu ve Vašem účtu jako ověřenou. Ověřené domény na webové stránce svého účtu můžete zkontrolovat po přihlášení k účtu v menu [[https://www.cacert.org/account.php?id=9|Domény - Zobrazit]]. (Aby tento odkaz fungoval, přihlaste se uživatelským jménem a heslem.) Podle platných standardů bude obecný název (commonName) ignorován, poskytnete-li alternativní název předmětu (subjectAltName) v žádostech o certifikáty (CSR), což je ověřeno jako funkční v posledních verzích MS Internet Exploreru a Mozilla Firefoxu (12.05.2005)... Proto je třeba '''uvést''' (hlavní) '''obecný název''' také '''mezi alternativní názvy''' (například na prvním místě). Pouze nepoužijete-li alternativní názvy (SAN) vůbec, uplatní se obecný název (commonName) z důvodu kompatibility. === Přidání více alternativních názvů (SAN) do Vaší žádosti CSR pomocí OpenSSL === * Zkopírujte výchozí soubor openssl.cnf do dočasného souboru openssl-san.cnf * Upravte soubor openssl-san.cnf přidáním dalších požadovaných parametrů {{{ [req] req_extensions = v3_req [ v3_req ] # Rozšiřující údaje k přidání do žádosti o podpis certifikátu basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = server1.example.com DNS.2 = mail.example.com DNS.3 = www.example.com DNS.4 = www.sub.example.com DNS.5 = mx.example.com DNS.6 = support.example.com }}} === Vytvoření privátního klíče a žádosti CSR pomocí OpenSSL === * Dva příkazy openssl po sobě - první generuje pár klíčů, druhý generuje CSR {{{ openssl genrsa -out srvr1-example-com-2048.key 4096 openssl req -new -out srvr1-example-com-2048.csr -key srvr1-example-com-2048.key -config openssl-san.cnf }}} === Kontrola alternativních názvů (SAN) ve Vaší žádosti CSR pomocí OpenSSL === * Příkaz openssl {{{ openssl req -text -noout -in .csr }}} * Výsledek kontroly (příklad) {{{ Certificate Request: Data: Version: 0 (0x0) Subject: C=DE, ST=Germany, L=City, O=Company, OU=Organisation-Unit, CN=server1.example.com/emailAddress=alias@example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (4096 bit) Modulus (4096 bit): [...] Exponent: 65537 (0x10001) Attributes: Requested Extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment X509v3 Subject Alternative Name: DNS:server1.example.com, DNS:mail.example.com, DNS:www.example.com, DNS:www.sub.example.com, DNS:mx.example.com, DNS:support.example.com Signature Algorithm: sha1WithRSAEncryption [...] }}} * Legenda: * Certificate Request = Žádost o (podpis) certifikát(u) * Subject Public Key Info = Informace o veřejném klíči * Public Key Algorithm = Algoritmus veřejného klíče * RSA Public Key = Veřejný klíč RSA * Requested Extensions = Požadované rozšiřující údaje * Key Usage = Použití klíče * Digital Signature = Digitální podpis * Non Repudiation = Nepopiratelnost [schopnost prokázat zpětně jednání či událost tak, aby dané jednání či událost nemohly být následně popřeny] * Key Encipherment = Zašifrování klíčem * Subject Alternative Name = Alternativní název předmětu * Signature Algorithm = Algoritmus (použitý pro vytvoření) podpisu === Zkopírovat obsah souboru žádosti (CSR) do formuláře pro nový serverový certifikát === * Zpracování výsledků žádosti o podpis - příklad výstupu: {{{ Před pokračováním zajistěte správnost následujících údajů. CommonName: server1.example.com subjectAltName: DNS:server1.example.com subjectAltName: DNS:mail.example.com subjectAltName: DNS:www.example.com subjectAltName: DNS:www.sub.example.com subjectAltName: DNS:mx.example.com subjectAltName: DNS:support.example.com Další údaje nebudou do certifikátů vloženy, protože systém není schopen je automaticky zkontrolovat. [submit] }}} * Výsledky: {{{ Zde je Váš serverový certifikát: -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- }}} * Zkopírujte (Ctrl-C) a vložte (Ctrl-V) text včetně řádků {{{ "-----BEGIN CERTIFICATE-----" -a- "-----END CERTIFICATE-----" }}} * do nového souboru, například s názvem a příponou: srvr1-example-com-2048-signed-class1.key === Ověřte podepsaný soubor s (veřejným) klíčem pomocí OpenSSL === * Příkaz openssl {{{ openssl x509 -text -in srvr1-example-com-2048-signed-class1.key -noout }}} * dá výsledek: {{{ Certificate: Data: Version: 3 (0x2) Serial Number: 4451 (0x1163) Signature Algorithm: sha1WithRSAEncryption Issuer: C=AU, ST=New South Wales, O=CAcert Testserver, OU=http://cacert1.it-sls.de, CN=CAcert Testserver Root Validity Not Before: Sep 21 14:41:43 2012 GMT Not After : Oct 21 14:41:43 2012 GMT Subject: CN=server1.example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): [...] Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Key Usage: critical Digital Signature, Key Encipherment, Key Agreement X509v3 Extended Key Usage: TLS Web Client Authentication, TLS Web Server Authentication, Netscape Server Gated Crypto, Microsoft Server Gated Crypto Authority Information Access: OCSP - URI:http://ocsp.cacert.org/ X509v3 CRL Distribution Points: URI:http://crl.cacert.org/revoke.crl X509v3 Subject Alternative Name: DNS:server1.example.com, othername:, DNS:mail.example.com, othername:, DNS:www.example.com, othername:, DNS:www.sub.example.com, othername:, DNS:mx.example.com, othername:, DNS:support.example.com, othername: Signature Algorithm: sha1WithRSAEncryption [...] }}} * Legenda (jen termíny neuvedené výše, u Kontroly SAN v CSR): * Issuer = Vydavatel * Validity = Platnost * Not before = začátek platnosti včetně (ne před datem) * Not after = Konec platnosti včetně (ne po datu) * Basic Constraints: critical = Základní omezení: kritické * CA: FALSE = toto není kořenový certifikát certifikační autority (CA) * Key Agreement = Dohoda klíčů (protokol dohody klíčů - [[https://en.wikipedia.org/wiki/Key-agreement_protocol]]) * Extended Key Usage = Rozšířená použití klíče * TLS Web Client Authentication = identifikace klienta webového serveru pro TLS [Transport Layer Security - bezpečné šifrované spojení transportní vrstvy] * TLS Web Server Authentication = identifikace webového serveru pro TLS * Server Gated Crypto = způsob přechodu ze systémů šifrování klíčem 40/56 bitů na 128 bitů; dnes zastaralé * Authority Information Access = přístup k údajům [certifikační] autority (AIA) [u CAcert: URL odpovídače [[OcspResponder/CZ|OCSP]] ] * CRL Distribution Points = distribuční místa CRL [Certificate Revocation List, seznam odvolaných certifikátů] === Další materiál ke čtení === * [[HowTo/CZ|Jak-na-to]] * [[http://www.tlienhard.com/cacert/ExchangeCAcert.htm|Jak vytvořit certifikáty SAN pro použití v Microsoft Exchange]] ---- . CategoryCommunity . CategoryConfiguration . CategoryGuide . CategorySoftware . CategorySupport