#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 <yourcsrfile>.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:<unsupported>, DNS:mail.example.com, othername:<unsupported>,
                DNS:www.example.com, othername:<unsupported>, DNS:www.sub.example.com, othername:<unsupported>,
                DNS:mx.example.com, othername:<unsupported>, DNS:support.example.com, othername:<unsupported>
    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