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 / TLS certifikát od Startssl.com
- Od meitner.mojeid. Dne 2016-10-20 15:54
Dobrý den,
získal jsem certifikát od startssl.com (nepodařilo se mi na turrisu rozběhnout letsencrypt).

Rád bych ho používal pro webové stránky a pro luci či foris. Jak ty certifikáty od Starssl překonvertuji do formátu, který používá turris?

A až bude překonfigurováno, tak bude stačit přepsat tím konvertovaným certifikátem soubor /etc/lighttpd-self-signed.pem?

Od Startssl mám tyto certifikáty (+tam byly nějaké pro windowsácké servery):
ApacheServer/1_root_bundle.crt
ApacheServer/2_mojedomena.cz.crt
NginxServer/1_mojedomena.cz_bundle.crt
OtherServer/1_Intermediate.crt
OtherServer/2_mojedomena.cz.crt
OtherServer/root.crt
- Od meitner.mojeid. Dne 2016-10-20 16:31
Pokud překopíruji ten soubor pro nginx bez nějaké konverze a reloaduji lighttpd, tak dostanu tuto chybovou hlášku:
(network.c.571) SSL: couldn't read private key from '/etc/lighttpd-self-signed.pem' 
- - Od NONES (>>>) Dne 2016-10-20 18:15 Upraveno 2016-10-20 18:18
Odpověď na Vaši otázku najdete v tomto starším příspěvku kolegy Ondřeje Caletky
Nadřazený - Od TomasA Dne 2016-10-20 18:43
A já dodám (ve výše uvedeném threadu pana Caletky jsem nenašel), že pokud byl privátní klíč chráněn heslem, nepodařilo se mi lighttpd nastartovat bez zadání tohoto hesla, což se jaksi moc při automatickém startu nehodí. Naštěstí se toto dalo dohledat v diskuzích. Já ovšem pro lighttpd nepoužil žádnou skutečnou autoritu, ale vytvořil jsem si na turrisu svou CA (lighttpd je dostupný pouze z vnitřní sítě, z internetu je dostupný apache) a na domácí počítače tuto CA distribuoval jako důvěryhodnou.
- - Od meitner.mojeid. Dne 2016-10-21 13:00
Hm, a ten privátní klíč najdu v těch vygenerovaných souborech od startssl kde? Nebo je to klíč v nějakém souboru, který jsem vytvořil v žádosti o certifikát?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2016-10-21 13:05
Privátní klíč jste generoval při odesílání žádosti, případně jej máte vygenerovaný v prohlížečí. Stejně bych doporučoval přejít k jiné autoritě, StartSSL je od dnešního dne nedůvěryhodná, takže své certifikáty nejspíš neprodloužíte: https://www.root.cz/clanky/mozilla-rozhodla-zitra-prestane-verit-ca-wosign-a-startcom/
Nadřazený - - Od meitner.mojeid. Dne 2016-10-21 13:10
Díky za info, bohužel možnost mít zdarma důvěryhodný certifikát nemám. A certifikát jsem si udělal včera, právě, abych to stihl a byl ještě důvěryhodný. Zkoušel jsem nějaké způsoby, jak si vygenerovat na turrisu letsencrypt, ale bez úspěchu. Počítám, že až mi skončí platnost certifikátu, že snad bude pro turris dostupný nějaký návod pro letsencrypt, kterému bych porozumněl a který by mi fungoval. Takže to bude jeden z těch souborů, který jsem si vygeneroval a na turrisu a ten jsem navíc chránil heslem. Můžete mi prosím poskytnout info, jak ho odhesluju?
Nadřazený - - Od linker Dne 2016-10-21 13:47
Da sa pouzit nieco taketo. Prisposobte si to vlastnym poziadavkam. Apache je tam iba na vystavenie suboru pre overenie domeny, cez nginx sa mi to nexcelo riesit.

Do /etc/apache/httpd.conf pridat:

<IfModule alias_module>
  Alias /.well-known/acme-challenge/ /usr/share/htdocs/cert/
</IfModule>

# cat renew.sh
#!/bin/bash
/etc/init.d/nginx stop
apachectl start
CERTDIR=/etc/letsencrypt/moja.domena.cz
OUTDIR=/etc/letsencrypt/moja.domena.cz
python ./acme-tiny/acme_tiny.py --account-key ${CERTDIR}/account.key --csr ${CERTDIR}/domain.csr --acme-dir /usr/share/htdocs/cert/ > ${CERTDIR}/signed.crt || exit
wget --no-check-certificate -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > ${CERTDIR}/intermediate.pem
cat ${CERTDIR}/signed.crt ${CERTDIR}/intermediate.pem > ${OUTDIR}/fullchain1.pem
apachectl stop
/etc/init.d/nginx start

Acme-tiny sa da stiahnut napr. tu:
https://github.com/diafygi/acme-tiny
Nadřazený - - Od meitner.mojeid. Dne 2016-10-21 14:15
Díky, ale pro blbé vytvoření certifikátu tam jsou hned 3 webservery - lighttpd (který je již v turrisu od výroby), nginx, a apache. Není to trošku moc? Nehledě na to, jak pak turris pozná, jaký obsah má servýrovat po jakém webserveru? Šlo by to využívat pouze s tím lighttpd? Jak si řešil pravidla firewallu pro ten letsencrypt? Myslím, že už jsem nějaké pokusy právě s tím acme-tiny zkoušel, ale nepodařilo se.
Nadřazený - - Od linker Dne 2016-10-21 14:52
Ten apache je vypnuty, pouziva sa iba na renew certifikatov. Nginx pouzivam ako reverse proxy pre masiny dalej v sieti. Lighttpd som presunul na port 81. Pravidla firewallu su jednoduche, otvori sa 443 a 80.
Nadřazený - Od meitner.mojeid. Dne 2016-10-21 15:31
ok, díky za info
Nadřazený - - Od meitner.mojeid. Dne 2016-11-03 22:24 Upraveno 2016-11-03 22:50
tohle je pěkná kravina:
python ./acme-tiny/acme_tiny.py --account-key ${CERTDIR}/account.key --csr ${CERTDIR}/domain.csr --acme-dir /usr/share/htdocs/cert/ > ${CERTDIR}/signed.crt || exit

důvod: v případě, když selže, tak podepsaný signed.crt se stane prázdným a web nenajede.

Vyřešil jsem to jinak - obnova funguje i v lighttpd, takže jsem odinstaloval apache.
#!/bin/bash

CERTDIR=/etc/letsencrypt/mojedomena.cz
OUTDIR=/etc/letsencrypt/mojedomena.cz
DOMAIN=mojedomena.cz

mkdir /tmp/acme-challenge/ &>/dev/null
mkdir /www/.well-known/ &>/dev/null
ln -s /tmp/acme-challenge/ /www/.well-known/acme-challenge 2>/dev/null

python /etc/letsencrypt/acme_tiny.py --account-key ${CERTDIR}/account.key --csr ${CERTDIR}/$DOMAIN.csr --acme-dir /www/.well-known/acme-challenge/ 1> ${CERTDIR}/signed.crt || exit

wget --no-check-certificate -O - https://letsencrypt.org/certs/lets-encrypt-x4-cross-signed.pem > ${CERTDIR}/intermediate.pem
wget --no-check-certificate -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem >> ${CERTDIR}/intermediate.pem
wget --no-check-certificate -O - https://letsencrypt.org/certs/lets-encrypt-x2-cross-signed.pem >> ${CERTDIR}/intermediate.pem
wget --no-check-certificate -O - https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem >> ${CERTDIR}/intermediate.pem

cat ${CERTDIR}/$DOMAIN.key ${CERTDIR}/signed.crt > ${OUTDIR}/$DOMAIN.pem
cat ${CERTDIR}/signed.crt ${CERTDIR}/intermediate.pem > ${OUTDIR}/fullchain1.pem


#certifikat a privatni klic: /etc/letsencrypt/mojedomena.cz/mojedomena.cz.pem
#ca chain pem /etc/letsencrypt/mojedomena.cz/fullchain1.pem

/etc/init.d/lighttpd restart
exit 0
Nadřazený - Od meitner.mojeid. Dne 2016-11-03 22:29
/etc/lighttpd/conf.d/ssl-enable.conf
# This settings enables https with user-generated self-signed certificate from
# package https-cert

$SERVER["socket"] == ":443" {
      ssl.engine = "enable"
      ssl.pemfile = "/etc/letsencrypt/mojedomena.cz/mojedomena.cz.pem"
      ssl.ca-file = "/etc/letsencrypt/mojedomena.cz/fullchain1.pem"
      ssl.dh-file = "/etc/letsencrypt/dh4096.pem"

      ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"

      ssl.honor-cipher-order = "enable"
      ssl.ec-curve = "secp384r1"
}

$SERVER["socket"] == "[::]:443" {
      ssl.engine  = "enable"
      ssl.pemfile = "/etc/letsencrypt/mojedomena.cz/mojedomena.cz.pem"
      ssl.ca-file = "/etc/letsencrypt/mojedomena.cz/fullchain1.pem"
      ssl.dh-file = "/etc/letsencrypt/dh4096.pem"

     ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"

     ssl.honor-cipher-order = "enable"
     ssl.ec-curve = "secp384r1"

}
Nadřazený - Od meitner.mojeid. Dne 2016-11-03 22:31
/etc/lighttpd/modules.d/10-redirect.load
server.modules += ( "mod_redirect" )

$SERVER["socket"] == ":80" {
        $HTTP["host"] =~ "(.*)" {
        $HTTP["host"] !~ "/(\.well-known)/" {
                url.redirect = ( "^/(.*)" => "https://%1/$1" )
        }
    }
}
Nadřazený - Od meitner.mojeid. Dne 2016-11-03 22:36
/etc/lighttpd/modules.d/30-setenv.load
server.modules += ( "mod_setenv" )

$HTTP["scheme"] == "https" {
    setenv.add-response-header  = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; " )
}
Nadřazený - Od meitner.mojeid. Dne 2016-11-03 22:40
ty moduly je potřeba mít nainstalované
opkg install lighttpd-mod-setenv lighttpd-mod-redirect
Nahoru Téma Majitelé routerů / Technická podpora / TLS certifikát od Startssl.com

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill