Forum Turris
Fórum Turris Nápověda

Milí majitelé routerů Turris,

toto fórum bylo 9. 12. 2016 zmrazeno a nahrazeno naším novým Turris fórem. Ještě chvíli bude dostupné k prohlížení, ale již zde není možné přispívat. Více informací naleznete v oznámení o uzavření fóra.


Dear Turris routers users,

this forum has been frozen on Dec 9th, 2016 and replaced by our new Turris forum. It will be read-only accessible for some time after. For more information, read the announcement about closing the forum.

Nahoru Téma Majitelé routerů / Technická podpora / Certifikát HTTPS
- - Od JFila (>>) Dne 2014-09-11 18:50
Proč není certifikát v rozhraní routeru vygenerován důvěryhodnou certifikační autoritou, nebo proč je označen jako nedůvěryhodný?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-09-11 19:08 Hlasů 1
Certifikát může být důveryhodný jen v případě, že nějaká certifikační
autorita strvdí, že daný veřejný klíč skutečně patří tomu, za koho se
vydává, a to přinejmenším validací doménového jména. Žádná důvěryhodná
autorita nevydá certifikát pro adresu 192.168.1.1

Má-li ale váš Turris doménové jméno ve vaší doméně, můžete si nechat
důvěryhodný certifikát vystavit, třeba i zdarma od StartSSL.com.
Nadřazený - - Od JFila (>>) Dne 2014-09-11 19:16
Děkuji, teda to je rychlost. A není možné certifikát vydat například na číslo HW Turrisu? Zkoumal jsem například jak má vydané certifikáty Google, pokud na jeho server přijde pomocí doménového názvu, tak je považován za důvěryhodný (v popisu je uvedeno "vystaveno pro: *.google.cz"). Naopak pokud přijdu jeho IP adresou, tak není považován za důvěryhodný, jak vůbec celý proces funguje? Proč nemá každý Turris například svoje cname, například xxxx.turris.cz?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-09-11 20:10
Certifikát slouží primárně k ověření, že spojení bylo navázáno s tím, s kým jsme chtěli. A protože k navazování spojení se používá doménové jméno nebo IP adresa, musí certifikační autorita ověřit, že majitel certifikátu je oprávněn nakládat s doménovým jménem, nebo IP adresou. Služby s větší úrovní ověření používají ještě validaci identity, kdy je součástí certifikátu i identifikace fyzické nebo právnické osoby, které certifikát patří. A úplně největší ověření probíhá u tzv. EV certifikátů, které se dají poznat podle zeleného zámečku, a při jejichž vydávání autorita důkladně zkoumá, zda osoba, která o něj žádá, opravdu existuje a funguje (zkoumají se výpisy z hospodářské komory, obchodního rejstříku, katastru a podobně).

Proces validace certifikátu je jednoduchý. Prohlížeč se připojí a obdrží certifikát, zkontroluje jeho platnost a zkontroluje, jestli byl vydán pro doménové jméno, se kterým se snaží spojit. Pokud ne, nebo je certifikát propadlý, nebo poškozený, nebo není vystaven důvěryhodnou autoritou, je vyhlášen poplach.

Z toho taky vyplývá, že takový důvěryhodný certifikát obvykle není zadarmo. Doménová jména ve tvaru např. <číslo>.router.turris.cz by sice existovat mohla, ale spousta routerů záměrně není veřejně dostupná z internetu a některé jsou dokonce za NATem providera. Navíc by se s tím zbytečně vytvořil centrální seznam, pomocí kterého by bylo snadné nalézt všechny routery Turris a například zneužívat nějakou 0day zranitelnost
Nadřazený - - Od JFila (>>) Dne 2014-09-12 06:22
Děkuji za vysvětlení. Ad <číslo>.router.turris.cz, to mě nenapadlo. Myslel jsem, že by byl certifikát vygenerován pro <číslo>.router.turris.cz ale používal by se jen pro lokální účely(stejně jako v současnosti) s rozdílem, že by byl považován za důvěryhodný.

Dále děkuji za tip na StartSSL, podpisový certifikát pro mail už jsem si zprovoznil a dokonce získal certifikát pro doménu. Bohužel nevím jak ho překonvertovat do formátu pro Lighttpd server v Turrisu.
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-09-12 07:39 Hlasů 1
Musíte mít dva soubory, jeden s privátním klíčem, druhý s certifikátem, oba ve formátu PEM (textový soubor obalený -----BEGIN  a -----END). Lighttpd potřebuje privátní klíč a certifikát v jednom souboru, mezilehlé certifikáty ve druhém. Takže nejprve spojte privátní klíč a certifikát do jednoho a pak stáhněte mezilelhý certifikát (to bude Class 1 server CA)


# cat privatekey.pem certificate.pem >/etc/lighttpd-startssl.pem
# wget http://www.startssl.com/certs/sub.class1.server.ca.pem
# mv sub.class1.server.ca.pem /etc/ssl/certs/


Pak už jen editujte v souboru /etc/lighttpd/conf.d/ssl-enable.conf:

       ssl.pemfile = "/etc/lighttpd-startssl.pem"
       ssl.ca-file = "/etc/ssl/certs/sub.class1.server.ca.pem"


Tím by to mělo být hotovo. Otestujte jednak příkazem
# openssl s_client -connect <adresa turrisu>:443
jednak, pokud máte router veřejně přístupný, pomocí https://www.ssllabs.com/ssltest/
Nadřazený - - Od NONES (>>>) Dne 2014-09-12 10:11
Nebude mít na toto téma (zcela náhodou :grin:) Ondra Caletka přednášku na letošní konferenci LinuxDays ?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-09-12 13:12
Náhodou ano. Plus tam bude možnost kontaktovat (doufejme) dva WOT notáře a získat tak S/MIME certifikát vystavený na své jméno.
Nadřazený - - Od NONES (>>>) Dne 2014-09-12 21:13
Hmmm, to zní dobře. Co k tomu bude potřeba mít připravené předem? Stačí pouze přinést svůj doklad totžnosti?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-09-12 21:52
Dva státem uznávané doklady totožnosti (OP, řidičák, zbrojní a cestovní pas). Více zde: https://www.startssl.org/?app=13
Nadřazený - - Od NONES (>>>) Dne 2014-09-13 06:48
A je třeba mít s sebou v elektronické formě žádost o vydání certifikátu (*.req soubor), nebo se vše vygeneruje notář až na místě?
Nadřazený - Od Ondřej Caletka (>>>) Dne 2014-09-13 20:52
Vůbec ne, všechno probíhá elektronicky, viz zde: http://www.startssl.org/?app=12

Uživatel si nejprve vygeneruje neověřený StartSSL Free S/MIME certifikát, pak pomocí webové aplikace požádá notáře o ověření a zastaví se u něj osobně. Ten ověření provede a podepíše o tom spolu s uživatelen protokol. Po získání dvou notářských ověření si uživatel může vygenerovat nový certifikát, který už bude obsahovat jeho jméno.
Nadřazený - - Od NONES (>>>) Dne 2014-09-12 21:15
Ondřeji, dobrý návod. Díky. Pokud mám dvě doménová jména (a pro obě mám vystavené SSL certifikáty) a obě tato jména v DNS nasměruji na IP svého Turrisu, jak je třeba upravit konfiguraci lighttpd v Turrisu, aby bral přístupy přes libovolné z obou doménových jmen?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-09-12 22:05
Pokud máte dvě různá doménová jména pro stejný server, je ideální řešení mít jeden certifikát vystavený na obě jména. Jenže to vám například StartSSL zdarma nevystaví, takže pokud už máte dva různé certifikáty, musíte nakonfigurovat Lighttpd tak, aby pro jedno ze dvou doménových jmen posílal jiný certifikát. To je naštěstí poměrně snadné díky podmíněné konfiguraci:


$HTTP["host"] =~ "druhadomena\.example\.cz$" {
        ssl.pemfile = "/etc/lighttpd-druhadomena.pem"
}
Nadřazený - - Od NONES (>>>) Dne 2014-09-13 06:47
Prima, funguje to, podmíněná konfigurace je to správné řešení. Ještě jednou moc díky.
Nadřazený - - Od JFila (>>) Dne 2014-09-14 17:34
Děkuji za návod, z startSSL jsem získal privátní klíč:
-----BEGIN RSA PRIVATE KEY-----
xyz
-----END RSA PRIVATE KEY-----

A dále certifikát pro doménu turris.<doména>.cz
-----BEGIN CERTIFICATE-----
abcd
-----END CERTIFICATE-----

Tyto jsem dle návodu spojil v jeden soubor, stáhl certifikát autority a postupoval dle návodu.
Bohužel při restartu lighttp server hlásí:
2014-09-14 16:31:37: (network.c.747) SSL: Private key does not match the certificate public key, reason: error:0906D066:lib(9):func(109):reason(102) /etc/lighttpd-startssl_xyz.pem
Kde dělám chybu?
Nadřazený - - Od NONES (>>>) Dne 2014-09-14 18:33 Hlasů 1
Pravděpodobně se pokoušíte spojovat zašifrovaný privátní klíč s certifikátem. Pokud ta sekce za --- BEGIN RSA PRIVATE KEY --- pokračuje slovy Encrypted, je to špatně. Musíte předtím svůj privátní klíč decryptovat pomocí Vámi zadaného hesla k privátnímu klíči, které jste zadával na stránkách STARTSSL v okamžiku jeho generování a teprve tento privátní klíč spojit s certifikátem.
Nadřazený - - Od JFila (>>) Dne 2014-09-14 18:37
K rozšifrování jsem použil záložku Decrypt Private Key na webu startssl.com. Ještě se o stejné pokusím přímo v routeru.
Nadřazený - - Od JFila (>>) Dne 2014-09-14 18:41
Tak, nepodařilo se, výsledkem je stejný řetězec, který jsem získal ze startssl.com.
Nadřazený - Od NONES (>>>) Dne 2014-09-14 18:48
Zkopíroval jste si správně ty textové řetězce z okýnek STARTSSL? Podle chybové hlášky to vypadá, že "Soukromý klíč neodpovídá certifikátu veřejného klíče"
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-09-15 13:08 Hlasů 1
Ta chyba říká, že daný certifikát nepatří k danému privátnímu klíči. Doporučuji tento postup k ověření:

- Certifikát znovu stáhněte od StartSSL, aby bylo jisté, že jde o ten správný.
- Zkontrolujte jeho obsah pomocí $ openssl x509 -noout -text -in certifikat.pem
  - zkontrolujte zda Subject obsahuje doménové jméno, na které jste certifikát chtěl vydat
  - Poznamenejte si hodnotu Modulus

- zkontrolujte privátní klíč pomocí $ openssl rsa -noout -text -in private.pem. Modulus zde uvedený musí být totožný s modulem certifikátu.

- Pokud není a nepodaří se vám najít ten správný privátní klíč k vašemu certifikátu, nezbývá než požádat o nový certifikát. V takovém případě ale buď budete muset původní certifikát revokovat (což je placená služba), nebo zdarma požádat o nový certifikát na jiné doménové jméno.
Nadřazený - - Od JFila (>>) Dne 2014-09-16 18:22
Subject vypadá správně, jen nechápu tu část za lomítkem:
Subject: C=CZ, CN=turris.<doména>.cz/emailAddress=webmaster@<doména>.cz
Modulus certifikátu i privátního klíče se shoduje. Nemůže být problém, že se pokouším certifikát přidat do serveru, na který zatím tato doména nesměřuje (ale to Lighttpd nemá šanci poznat, nebo ano?).
Poslední možnost s vygenerováním dalšího certifikátu jsem už zkoušel, bohužel stále se stejným výsledkem.
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-09-16 21:47 Hlasů 1
Ten subject vypadá v pořádku. Na tom, jestli daná doména na server směruje nebo ne, to taky nezáleží. Podle mě všechno děláte správně a půjde jen o nějakou banalitu (ty jsou vždycky nejhorší :) ).

Napadá mě třeba: Co používáte za editor? Nemáte ten certifikát nebo klíč s Windows konci řádků? Není na začátku jednoho nebo druhého souboru UTF BOM?

Zkuste se na soubor s certifikátem a klíčem podívat pomocí hexdump. Můj vypadá takto:

root@turris:~# hexdump -C /etc/lighttpd-startssl.pem
00000000  2d 2d 2d 2d 2d 42 45 47  49 4e 20 50 52 49 56 41  |-----BEGIN PRIVA|
00000010  54 45 20 4b 45 59 2d 2d  2d 2d 2d 0a 4d 49 49 45  |TE KEY-----.MIIE|

00000690  3d 0a 2d 2d 2d 2d 2d 45  4e 44 20 50 52 49 56 41  |=.-----END PRIVA|
000006a0  54 45 20 4b 45 59 2d 2d  2d 2d 2d 0a 2d 2d 2d 2d  |TE KEY-----.----|
000006b0  2d 42 45 47 49 4e 20 43  45 52 54 49 46 49 43 41  |-BEGIN CERTIFICA|
000006c0  54 45 2d 2d 2d 2d 2d 0a  4d 49 49 47 33 44 43 43  |TE-----.MIIG3DCC|

00001010  55 6a 53 44 6c 69 55 3d  0a 2d 2d 2d 2d 2d 45 4e  |UjSDliU=.-----EN|
00001020  44 20 43 45 52 54 49 46  49 43 41 54 45 2d 2d 2d  |D CERTIFICATE---|
00001030  2d 2d 0a                                          |--.|
Nadřazený - - Od JFila (>>) Dne 2014-09-17 11:30 Upraveno 2014-09-17 11:43
Divné zde problém asi není, ještě zkontroluji nastavení lighttpd.
root@turris:/tmp/klic# hexdump -C turris.<doména>.cz.key
00000000  2d 2d 2d 2d 2d 42 45 47  49 4e 20 52 53 41 20 50  |-----BEGIN RSA P|
00000010  52 49 56 41 54 45 20 4b  45 59 2d 2d 2d 2d 2d 0a  |RIVATE KEY-----.|

...
00000670  0a 2d 2d 2d 2d 2d 45 4e  44 20 52 53 41 20 50 52  |.-----END RSA PR|
00000680  49 56 41 54 45 20 4b 45  59 2d 2d 2d 2d 0a 2d 2d  |IVATE KEY----.--|
00000690  2d 2d 2d 2d 42 45 47 49  4e 20 43 45 52 54 49 46  |----BEGIN CERTIF|
000006a0  49 43 41 54 45 2d 2d 2d  2d 2d 0a 4d 49 49 47 4e  |ICATE-----.MIIGN|

...
00000f10  76 41 75 65 2b 57 55 3d  0a 2d 2d 2d 2d 2d 45 4e  |vAue+WU=.-----EN|
00000f20  44 20 43 45 52 54 49 46  49 43 41 54 45 2d 2d 2d  |D CERTIFICATE---|
00000f30  2d 2d 0a                                          |--.|
00000f33


Rozdíl je jen v řetězci: "RSA PRIVATE KEY", je to pro lighttpd podstatné?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-09-17 11:37 Hlasů 1
Tohle nevypadá dobře, podle všeho privátní klíč začíná na
-----BEGIN CERTIFICATE-----
a končí na
-----END RSA PRIVATE KEY----
Nadřazený - Od JFila (>>) Dne 2014-09-17 11:44
Pomocí "openssl pkcs8 -topk8 -inform pem -in file.key -outform pem -nocrypt -out file.pem" jsem vygeneroval certifikát s BEGIN PRIVATE KEY, bohužel pořád stejný problém.

00000000  2d 2d 2d 2d 2d 42 45 47  49 4e 20 50 52 49 56 41  |-----BEGIN PRIVA|
00000010  54 45 20 4b 45 59 2d 2d  2d 2d 2d 0a 4d 49 49 45  |TE KEY-----.MIIE|

...
00000690  3d 0a 2d 2d 2d 2d 2d 45  4e 44 20 50 52 49 56 41  |=.-----END PRIVA|
000006a0  54 45 20 4b 45 59 2d 2d  2d 2d 2d 0a 2d 2d 2d 2d  |TE KEY-----.----|
000006b0  2d 2d 42 45 47 49 4e 20  43 45 52 54 49 46 49 43  |--BEGIN CERTIFIC|
000006c0  41 54 45 2d 2d 2d 2d 2d  0a 4d 49 49 47 4e 44 43  |ATE-----.MIIGNDC|

...
00000f30  75 65 2b 57 55 3d 0a 2d  2d 2d 2d 2d 45 4e 44 20  |ue+WU=.-----END |
00000f40  43 45 52 54 49 46 49 43  41 54 45 2d 2d 2d 2d 2d  |CERTIFICATE-----|
00000f50  0a                                                |.|
Nahoru Téma Majitelé routerů / Technická podpora / Certifikát HTTPS

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill