Wednesday, March 27, 2013

SSL certificates


This is the day, when I need use secure SSL certificate now...

I have checked information from some articles as the following example below and there is no magick now :-)
http://www.symantec.com/connect/articles/apache-2-ssltls-step-step-part-2

I need to create a valid web server certificate, in order to successful authentication the web server by the web browser.
So web server certificate should possess:
    public key of the web server
    dates of validity (both: start and expiration dates)
    supported cipher algorithms
    the serial number of the certificate
    X.509 attributes that will tell web browsers about the type and usage of the certificate
    name and signature of trusted Certification Authority (CA)
    URI of the CRL distribution point (if exists)
    URI of the X.509v3 Certificate Policy (if exists)
    Common Name (CN), which is the distinguish name (DN).
         DN must contain fully qualified domain name (FQDN) of the web server.
         Optionally it may also contain some other attributes, like:
               Organization's name (O),
               Organization Unit's name (OU),
               Country (C),
               State (S),
               Location (L)
               and more.

A fully qualified domain name (FQDN) is a domain name that specifies its exact location in the tree hierarchy of the Domain Name System (DNS):
http://en.wikipedia.org/wiki/Fully_qualified_domain_name

As wikipedia.org can explain... web browsers know how to trust HTTPS websites based on certificate authorities that come pre-installed in their software. Certificate authorities (e.g. VeriSign/Microsoft/etc.) are in this way being trusted by web browser creators to provide valid certificates. Logically, it follows that a user should trust an HTTPS connection to a website if and only if all of the following are true:
    The user trusts that the browser software correctly implements HTTPS with correctly pre-installed certificate authorities.
    The user trusts the certificate authority to vouch only for legitimate websites.
    The website provides a valid certificate, which means it was signed by a trusted authority.
    The certificate correctly identifies the website (e.g., when the browser visits "https://example.com", the received certificate is properly for "Example Inc." and not some other entity).
    Either the intervening hops on the Internet are trustworthy, or the user trusts that the protocol's encryption layer (TLS/SSL) is sufficiently secure against eavesdroppers.

Let's study the structure of British certificate of https://www.zalando.co.uk:
   
   



     
   
    
   

   

Let's study the structure of Polish certificate of *.nazwa.pl:





[[PODGLAD CERTYFIKATU:*.nazwa.pl]]

[OGOLNE]
1.
Niniejszy certyfikat zostal zweryfikowany do wykorzystania przez:
  Certyfikat SSL serwera
  Certyfikat osoby podpisujacej wiadomosc
  Certyfikat adresata wiadomosci
2.
Wystawiony dla
2.1.
Nazwa pospolita (CN):
  *.nazwa.pl
2.2.
Organizacja (O):
 
2.3.
Jednostka organizacyjna (OU):
 
2.4.
Numer seryjny:
  5D:B1:05:BA:A9:53:BD:59:DC:7A:3F:76:BD:56:22:46

3.
Wystawiony przez
3.1.
Nazwa pospolita (CN):
  Certum Level II CA
3.2.
Organizacja (O):
  Unizeto Technologies S.A.
3.3.
Jednostka organizacyjna (OU):
  Certum Certification Authority

4.
Waznosc
4.1.
Wystawiony dnia:
2013-02-21
4.2.
Wygasa dnia:
2014-02-21

5.
Odciski
5.1.
Odcisk SHA1:
65:40:7F:B7:55:54:9A:17:08:E7:CB:89:F5:AF:9D:45:E3:73:E9:69
5.2.
Odcisk MD5:
02:C5:38:39:50:FF:FA:8B:66:E7:00:B2:DF:F1:C1:0C




[SZCZEGOLY]
Hierarchia certyfikatu:
1.
Certum CA
1.1.
Certum Level II CA
1.1.1.
  *.nazwa.pl


Pola certyfikatu:
2.
  *.nazwa.pl
2.1.
Certyfikat
2.1.1.
Wersja:
  Wersja 3
2.1.2.
Numer seryjny:
  5D:B1:05:BA:A9:53:BD:59:DC:7A:3F:76:BD:56:22:46
2.1.3.
Algorytm sygnatury certyfikatu:
  PKCS #1 SHA-1 z szyfrowaniem RSA
2.1.4.
Wystawca:
  CN = Certum Level II CA
  OU = Certum Certification Authority
  O = Unizeto Technologies S.A.
  C = PL
2.1.5.
Waznosc
2.1.5.1.
Niewazny przed:
  2013-02-21 15:27:45
  (2013-02-21 14:27:45 GMT)
2.1.5.2.
Niewazny po:
  2014-02-21 15:27:45
  (2014-02-21 14:27:45 GMT)
2.1.6.
Podmiot:
  E = certs@netart.pl
  CN = *.nazwa.pl
  C = PL
2.1.7.
Informacje o kluczu publicznym
2.1.7.1.
Algorytm klucza publicznego:
  PKCS #1 Szyfrowanie RSA
2.1.7.2.
Klucz publiczny:
  Modulo (bitow: 2048):
  bf 40 fe a6 0a fe 6f cc 16 62 fa d7 0d e0 d3 40
  83 a7 e8 28 ae 5a 3f 75 ab 32 ed e4 8c 02 f2 10
  ab 1d a4 94 e4 44 b0 d3 fa ba 07 b9 99 9b ee b1
  b8 c0 21 da d2 f2 c7 7d 71 aa 2e cd 80 65 cc c1
  87 3d 07 df b9 33 46 47 c8 f4 ea 82 30 29 b2 a5
  66 ef 8c 34 7f dd aa 28 42 a3 70 66 a1 0f d7 eb
  e3 a7 f3 70 a2 77 3e dc 1f f4 64 2e ae f7 0c fa
  b9 a0 84 bd 4a 2d 20 04 3e 76 c9 36 0a 92 fd f6
  c6 b2 60 56 7b bd 06 85 89 6a 5c 60 62 cc 2b 72
  be ce fc f6 ea 84 bf 47 65 22 12 8c 38 01 bb 28
  3f 51 24 a1 1e 41 ba 45 bc 1e 30 28 36 3f 35 c3
  cc 89 3d 37 53 4c f0 52 7e 2a 17 4f 29 c3 c9 75
  46 0a 9c 72 fe ed 75 e7 4b 75 1d 77 f3 1c 83 77
  93 cd f6 dd 03 78 aa 45 a0 9b 6c 3c 66 d3 fe 81
  bf 1e aa 57 9a 55 bb e5 35 50 46 33 ad 9f 11 30
  92 67 21 ab a8 b8 3b d1 3f d7 76 e8 3d e5 b7 ab
  Wykladnik (bitow: 24):
  65537
2.1.8.
Rozszerzenia
2.1.8.1.
Podstawowe ograniczenia certyfikatu:
  Krytyczny
  Nie jest organem certyfikacji
2.1.8.2.
Punkty dystrybucji CRL:
  Niekrytyczny
  URI: http://crl.certum.pl/l2.crl
2.1.8.3.
Identyfikator klucza organu certyfikacji:
  Niekrytyczny
  Rozmiar: 20 bajtow / 160 bitow
  80 62 11 de c0 6b a7 10 e1 08 f0 55 b4 30 83 bf
  fa 8f 08 60
2.1.8.4.
Identyfikator klucza podmiotu certyfikatu:
  Niekrytyczny
  Rozmiar: 20 bajtow / 160 bitow
  5c a8 d5 00 24 2f 30 21 8f 7b 9e 18 f0 8f 86 dc
  43 62 36 ed
2.1.8.5.
Warunki uzycia klucza certyfikatu:
  Krytyczny
  Podpisywanie
  Szyfrowanie klucza
2.1.8.6.
Zasady certyfikatu:
  Niekrytyczny
  1.2.616.1.113527.2.2.2:
    Wskazanie regulaminu organu certyfikacji:
      https://www.certum.pl/CPS
    Powiadomienie uzytkownika: Unizeto Technologies S.A. - #15
      Usage of this certificate is strictly subjected to the CERTUM Certification Practice Statement (CPS) incorporated by reference herein and in the repository at https://www.certum.pl/repository.
2.1.8.7.
Rozszerzone uzycie klucza:
  Niekrytyczny
  Uwierzytelnianie serwera WWW TLS (1.3.6.1.5.5.7.3.1)
  Uwierzytelnianie klienta WWW TLS (1.3.6.1.5.5.7.3.2)
  Microsoft Server Gated Crypto (1.3.6.1.4.1.311.10.3.3)
  Netscape Server Gated Crypto (2.16.840.1.113730.4.1)
2.1.8.8.
Typ certyfikatu Netscape:
  Niekrytyczny
  Certyfikat SSL klienta
  Certyfikat SSL serwera
2.1.8.9.
Dostep do informacji o organach certyfikacji:
  Niekrytyczny
  OCSP: URI: http://ocsp.certum.pl
  Wydawcy CA: URI: http://www.certum.pl/l2.cer
2.1.8.10.
Alternatywna nazwa podmiotu certyfikatu:
  Niekrytyczny
  Nazwa DNS: *.nazwa.pl
  Nazwa DNS: nazwa.pl
2.1.9.
Algorytm sygnatury certyfikatu
  PKCS #1 SHA-1 z szyfrowaniem RSA
2.1.10.
Wartosc sygnatury certyfikatu
  Rozmiar: 256 bajtow / 2048 bitow
  c8 13 42 7f b0 7a b9 e1 c9 69 8e 79 30 d7 02 13
  f0 e4 3a 3f e2 d5 50 d0 fa 89 2a a6 69 67 19 ab
  e8 3d 85 c1 67 cf b4 ec ef 09 4a 90 b3 9b e6 87
  56 74 b8 6c ad f7 72 a6 d5 ff 0a fb 0d bb 39 bc
  c1 8b 3e 5f 8e 7e 4f 47 9e e2 cc 26 40 9e 3b 0c
  28 d7 4b 63 eb cf b1 41 fb 79 e2 c7 f2 22 6d ed
  e2 59 58 b5 b8 cf 65 10 3f 69 c4 66 77 e0 51 0d
  3e e1 e3 b1 dc 54 93 8b 05 f5 cb 1b 50 6c 25 09
  b7 b1 6e 19 97 4a 71 e6 c4 59 bb 5d 92 bb 97 8e
  0c 64 fc 41 8b 37 87 f2 3d a7 76 60 e4 36 55 20
  29 3f b6 8e 43 25 0b 8d 20 3f 8f ae b6 6a 6e b7
  8b 05 91 18 e5 ec 0a 56 54 f0 3b e5 54 c6 62 5c
  ac f2 b3 89 74 92 3b 2c fb 72 30 ba 79 3a 75 10
  55 dd 04 91 bc 60 54 a2 71 59 00 09 6f 07 7a 3b
  f2 56 99 3d 80 d9 f8 ec 37 13 fb 7b 9a b4 75 81
  e5 3f a7 2d 00 16 2d 07 c5 2b f6 b0 c7 35 69 73