Fórum Root.cz

Hlavní témata => Software => Téma založeno: darebacik 05. 07. 2018, 08:22:04

Název: Certifikáty Let's Encrypt nefungují na Androidu
Přispěvatel: darebacik 05. 07. 2018, 08:22:04
Mam nejake weby s certifikatmi od letsencrypt. Vacsinou nemam problem nikde, ale ked chcem web prehliadat na android 6.0.1, tak stale hlasi
Kód: [Vybrat]
Vyskytli sa problemy s bezpecnostnym certifikatomKed kliknem na zobrazit certifikat, tak dostanem
Kód: [Vybrat]
Certifikat nepochadza z doverihodnej autorityMinimalne je to tak na android 6.0.1 miui stable 8.5.3.0, prehliadac 8.7.7
Název: Re:problem s letsencrypt na androide
Přispěvatel: ByCzech 05. 07. 2018, 08:52:25
Bez toho, abychom věděli jaké konkrétní weby to může být pouze pokus o trefu na slepo:

https://community.letsencrypt.org/t/incompatibility-with-android-6-0/37349
Název: Re:problem s letsencrypt na androide
Přispěvatel: Filip Jirsák 05. 07. 2018, 09:11:07
Posílá server kompletní certifikační cestu, tj. všechny certifikáty s výjimkou kořenového? Certifikáty Let's Encrypt jsou podepsané ještě další certifikační autoritou, a některé starší systémy neznají přímo certifikáty Let's Encrypt, ale znají tu nadřazenou certifikační autoritu (DST Root CA X3).
Název: Re:problem s letsencrypt na androide
Přispěvatel: kkt1 05. 07. 2018, 09:40:57
Napis web, rekneme ti jestli je problem na webu nebo u tebe.
Název: Re:problem s letsencrypt na androide
Přispěvatel: Martin Dráb 05. 07. 2018, 12:18:59
S Androidem jsem měl přesně stejný problém a stačilo právě přibalit mezilehlý certifikát Let's Encrypt k certifikátu pro danou doménu, čímž již byla známá cesta až k (důvěryhodnému) kořeni.
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 05. 07. 2018, 12:28:17
S Androidem jsem měl přesně stejný problém a stačilo právě přibalit mezilehlý certifikát Let's Encrypt k certifikátu pro danou doménu, čímž již byla známá cesta až k (důvěryhodnému) kořeni.
Ako přibalit mezilehlý certifikát Let's Encrypt k certifikátu pro danou doménu
Název: Re:problem s letsencrypt na androide
Přispěvatel: Filip Jirsák 05. 07. 2018, 12:41:25
Ako přibalit mezilehlý certifikát Let's Encrypt k certifikátu pro danou doménu
Záleží na konkrétním serveru. Např. nginx umožňuje uvést zvlášť cestu k serverovému certifikátu a zvlášť k mezilehlému certifikátu autority, nebo dáte všechny certifikáty do jednoho souboru a uvedete cestu jenom k němu. Certifikáty se do daného souboru prostě nakopírují za sebou, takže v souboru je pak:
Kód: [Vybrat]
-----BEGIN CERTIFICATE-----
… 1. certifikát …
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
… 2. certifikát …
-----END CERTIFICATE-----
Název: Re:problem s letsencrypt na androide
Přispěvatel: ByCzech 05. 07. 2018, 17:36:41
S Androidem jsem měl přesně stejný problém a stačilo právě přibalit mezilehlý certifikát Let's Encrypt k certifikátu pro danou doménu, čímž již byla známá cesta až k (důvěryhodnému) kořeni.
Ako přibalit mezilehlý certifikát Let's Encrypt k certifikátu pro danou doménu

Dostal jste odpověď už v prvním příspěvku, četl jste ten odkaz?

Citace
The website send incomplete chain of certificates. It should be configured to send fullchain.pem instead of cert.pem.
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 05. 07. 2018, 23:18:28
do confu pre vhost
Kód: [Vybrat]
/etc/apache2/sites-available/web.confsom pribalil aj existujuci fullchain.pem
Kód: [Vybrat]
SSLCertificateKeyFile /etc/letsencrypt/live/web/fullchain.pemrestart apache
Kód: [Vybrat]
systemctl reload apache2a problem pretrvava aj nadalej
Název: Re:problem s letsencrypt na androide
Přispěvatel: Martin Dráb 05. 07. 2018, 23:31:06
Jestli to chápu správně, tak jste upravoval PEM soubor, ve kterém není certifikát, ale privátní klíč. Webserver ale klientovi (prohlížeči) posílá certifikát(y), ne privátní klíče, takže mezilehlé certifikáty musíte přibalit k certifikátu (často soubor s příponou .crt).
Název: Re:problem s letsencrypt na androide
Přispěvatel: Jenda 06. 07. 2018, 00:02:29
Když je tak tajné, jaký web to je, asi si budeš muset vystačit sám. Mohlo by pomoct https://www.ssllabs.com/ssltest/.
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 06. 07. 2018, 07:29:54
Jestli to chápu správně, tak jste upravoval PEM soubor, ve kterém není certifikát, ale privátní klíč. Webserver ale klientovi (prohlížeči) posílá certifikát(y), ne privátní klíče, takže mezilehlé certifikáty musíte přibalit k certifikátu (často soubor s příponou .crt).
V adresary
Kód: [Vybrat]
/etc/letsencrypt/live/web/mam symlinky na 4 subory
Kód: [Vybrat]
cert.pem
chain.pem
fullchain.pem
privkey.pem
ktore som vygeneroval prikazom
Kód: [Vybrat]
./letsencrypt-auto certonly --webroot -w /var/www/web -d moj-web.com -d www.moj-web.comVystup z generovania
Kód: [Vybrat]
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/web/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/web/privkey.pem
   Your cert will expire on 2018-08-31. To obtain a new or tweaked
   version of this certificate in the future, simply run
   letsencrypt-auto again. To non-interactively renew *all* of your
   certificates, run "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
Ako som uviedol vyssie v prispevku, pridal som do
Kód: [Vybrat]
/etc/apache2/sites-available/web.confdirektivu
Kód: [Vybrat]
SSLCertificateKeyFile /etc/letsencrypt/live/web/fullchain.pemAle vysledok sa nedostavil. myslel som si, ze mam tam chybu (key), cize som to upravil na
Kód: [Vybrat]
SSLCertificateFile /etc/letsencrypt/live/web/fullchain.pemale restart apache zlyhal (pre spatny config).
Když je tak tajné, jaký web to je, asi si budeš muset vystačit sám. Mohlo by pomoct https://www.ssllabs.com/ssltest/.
Web tu nechcem uvadzat, pretoze je to urceny len pre urcity okruh ludi a nechcem ho zverejnovat. Ten test som vcera spravil ... dostal som hodnotenie  B.
Priznam sa, ze neviem velmi dobre po anglicky, ale test mal vystupy vacsinou v zelenych, resp. oranzovych cislach. Jedine cervenym bolo v sekcii Configuration - Handshake Simulation
Kód: [Vybrat]
IE 8 / XP   No FS 1   No SNI 2 Server sent fatal alert: handshake_failure Ak je potrebne dodat nejake vysledky neni problem (web tu ale nechcem zverejnovat)
Název: Re:problem s letsencrypt na androide
Přispěvatel: Filip Jirsák 06. 07. 2018, 08:19:02
Apache potřebuje znát jak privátní klíč (který používá při šifrování spojení), tak certifikát a případně certifikační cestu (kterými se prokazuje klientovi). Takže SSLCertificateKeyFile musí ukazovat na privátní klíč, a dále SSLCertificateFile  na serverový certifikát (a mohou za něj být přidané mezilehlé certifikáty, v pořadí nejprve serverový certifikát a pak vždy certifikát, který byl použit k vystavení předchozího certifikátu v souboru), případně mezilehlé certifikáty mohou být v SSLCertificateChainFile.

Takže ve vašem případě:
Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/cert.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/chain.pem

Nezapomeňte na to, že certifikáty Let's Encrypt mají platnost jen tři měsíce, takže je potřeba je často obnovovat, ideálně automaticky skriptem třeba z cronu.
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 06. 07. 2018, 08:59:31
Pridal som tam vsetky certifikaty
Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/cert.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/chain.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/fullchain.pem
a stejne to pise, ze certifikat pochadza z nedoverihodnej autority
Název: Re:problem s letsencrypt na androide
Přispěvatel: ByCzech 06. 07. 2018, 09:27:36
Zkus to takhle:

Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/fullchain.pem

Nic jiného, jen takto. A pozor na to co máš v SSLCertificateFile!
Název: Re:problem s letsencrypt na androide
Přispěvatel: Jenda 06. 07. 2018, 09:51:24
Ten test som vcera spravil ... dostal som hodnotenie  B.
A nahlásilo ti to nějaké chain issues?
Název: Re:problem s letsencrypt na androide
Přispěvatel: Filip Jirsák 06. 07. 2018, 12:41:59
Pridal som tam vsetky certifikaty
Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/cert.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/chain.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/fullchain.pem
a stejne to pise, ze certifikat pochadza z nedoverihodnej autority
A to vám Apache takhle vezme? A jste si jist, že si to přebere správně? Proč to zbytečně komplikujete a nedáte tam přesně tu konfiguraci, kterou jsem vám napsal? Případně variantu, kterou napsal ByCzech – pokud jsou certifikáty v fullchain.pem správně seřazené.

Jaké certifikáty vám server vrací si můžete ověřit pomocí openssl s_client. Např.:

Kód: [Vybrat]
% openssl s_client -connect root.cz:443
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = root.cz
verify return:1
---
Certificate chain
 0 s:/CN=root.cz
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
[…]
Důležitá je ta část pod Certificate chain. Musí tam být dva certifikáty, 0 bude certifikát vašeho serveru (místo root.cz), 1 bude to samé, co je v tomto výpisu, protože root.cz také používá Let's Encrypt.
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 06. 07. 2018, 13:38:27
Zkus to takhle:

Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/fullchain.pem

Nic jiného, jen takto. A pozor na to co máš v SSLCertificateFile!
V SSLCertificateFile mam len to co mi vygeneroval a poslal letsencrypt
Nefunguje to ani s privkey.pem a fullchain.pem (na desktope mam mint 17 a v opere, mozille a chrome funguje vsetko bez problemov).
Ten test som vcera spravil ... dostal som hodnotenie  B.
A nahlásilo ti to nějaké chain issues?
Ano vid. obr https://imgur.com/a/rMCkQSO dole som to dal do cerveneho ramceka
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 06. 07. 2018, 14:15:39
Pridal som tam vsetky certifikaty
Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/cert.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/chain.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/fullchain.pem
a stejne to pise, ze certifikat pochadza z nedoverihodnej autority
A to vám Apache takhle vezme? A jste si jist, že si to přebere správně? Proč to zbytečně komplikujete a nedáte tam přesně tu konfiguraci, kterou jsem vám napsal? Případně variantu, kterou napsal ByCzech – pokud jsou certifikáty v fullchain.pem správně seřazené.

Jaké certifikáty vám server vrací si můžete ověřit pomocí openssl s_client. Např.:

Kód: [Vybrat]
% openssl s_client -connect root.cz:443
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = root.cz
verify return:1
---
Certificate chain
 0 s:/CN=root.cz
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
[…]
Důležitá je ta část pod Certificate chain. Musí tam být dva certifikáty, 0 bude certifikát vašeho serveru (místo root.cz), 1 bude to samé, co je v tomto výpisu, protože root.cz také používá Let's Encrypt.
Ved presne tak som to spravil ako uvadzate.
Skusil som
Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/cert.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/chain.pem
ale aj
Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/fullchain.pem
po reloade apache, android stale hlasi nedoverihodnu autoritu.
Co sa tyka overenia, tak mam tam len 0 (1 nie)
Kód: [Vybrat]
CONNECTED(00000003)
depth=0 CN = moj_web.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = moj_web.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 CN = moj_web.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/CN=moj_web.com
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
Název: Re:problem s letsencrypt na androide
Přispěvatel: Filip Jirsák 06. 07. 2018, 14:55:34
Ved presne tak som to spravil ako uvadzate.
Ne, v tom vašem výpisu jste měl navíc druhou volbu SSLCertificateChainFile.

Co sa tyka overenia, tak mam tam len 0 (1 nie)
To znamená, že Apache ten mezilehlý certifikát neposílá a to je ten důvod, proč tomu certifikátu Android nedůvěřuje. Podívejte se na ty soubory cert.pem a chain.pem. V každém by měl být jeden certifikát (jeden blok  -----BEGIN CERTIFICATE----- […] -----END CERTIFICATE-----). V souboru cert.pem by měl být jen certifikát vašeho serveru, v souboru chain.pem jen certifikát /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3. Následující příkazy vám obsah těch souborů a certifikátů v nich vložených vypíšou:

Kód: [Vybrat]
openssl x509 -text -noout -in /etc/letsencrypt/live/web/cert.pem
openssl x509 -text -noout -in /etc/letsencrypt/live/web/chain.pem

A mimochodem, pokud ty certifikáty k sobě nesedí (což je asi důvod, proč Apache ten mezilehlý certifikát neposílá), předpokládám, že o tom Apache něco napíše do logu, takže bych se podíval i tam. Předpokládám, že bude něco špatně v tom chain.pem. Možná tam máte vložený i ten serverový certifikát – pak ten soubor použijte pro SSLCertificateFile.
Název: Re:problem s letsencrypt na androide
Přispěvatel: ByCzech 06. 07. 2018, 15:01:50
ale aj
Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/fullchain.pem
po reloade apache, android stale hlasi nedoverihodnu autoritu.
Co sa tyka overenia, tak mam tam len 0 (1 nie)

A to je přesně ten problém. Web server neposlal fullchain nebo v tom souboru není fullchain, nebo máte někde ještě jinou definici SSL v konfigu Apache, která dostala z nějakého důvodu přednost ap.

Zajistěte aby web server poslal správný soubor, ve kterém bude správný řetězec certifikátů, pak to bude nejspíše fungovat, tak jak to funguje hromadě ostatních.
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 06. 07. 2018, 15:12:26
V kazdom *.pem subore mam len jeden certifikat
Kód: [Vybrat]
-----BEGIN CERTIFICATE----- […] -----END CERTIFICATE-----len v subore fullchain.pem mam 2 certifikaty a to
1. obsah cert.pem
2. obsah chain.pem.
Cize ak tomu spravne chapem, tak v apache vhost configu pouzijem vzdy privkey.pem (to je tajny kluc, ktory sa nesmie nikdy dostat nikomu do ruk).
A nasledne pouzijem fullchain.pem (alebo na miesto neho, chain.pem a cert.pem).
Takze by to malo byt jedno ci v configu pouzijem
Kód: [Vybrat]
privkey.pem
fullchain.pem
alebo
Kód: [Vybrat]
privkey.pem
chain.pem
cert.pem
Ale nefungovalo mi to ani z jednou z moznosti.
Skusim este pozriet log z apache.
Co sa tyka certifikatov (ci k sebe sedia alebo nie) to ja asi ovplivnit neviem, spolieham sa na vygenerovane certifikaty letsencryptom
Název: Re:problem s letsencrypt na androide
Přispěvatel: ByCzech 06. 07. 2018, 15:36:08
Takze by to malo byt jedno ci v configu pouzijem
Kód: [Vybrat]
privkey.pem
fullchain.pem

Tohle funguje, odzkoušeno... Pokud přes openssl vidíte jen jeden certifikát, znamená to, že se vám poslalo něco jiného nebo se konfigurace nenačetla znovu ap. Ve chvíli, kdy přes openssl uvidíte celý řetězec, měl by Android být spokojen.
Název: Re:problem s letsencrypt na androide
Přispěvatel: Filip Jirsák 06. 07. 2018, 15:38:37
Cize ak tomu spravne chapem, tak v apache vhost configu pouzijem vzdy privkey.pem (to je tajny kluc, ktory sa nesmie nikdy dostat nikomu do ruk).
A nasledne pouzijem fullchain.pem (alebo na miesto neho, chain.pem a cert.pem).
Ano.

Takze by to malo byt jedno ci v configu pouzijem
Kód: [Vybrat]
privkey.pem
fullchain.pem
alebo
Kód: [Vybrat]
privkey.pem
chain.pem
cert.pem
Ano, jenom musíte ty soubory uvést u správných direktiv, ale to asi máte, příklady tu byly několikrát.

Ale nefungovalo mi to ani z jednou z moznosti.
Buď v těch souborech máte špatné certifikáty, nebo měníte v Apache konfiguraci něčeho jiného (jiného virtualhosta, jiného serveru), než pak testujete. Těmi příkazy výše si můžete překontrolovat obsah těch certifikátů. Spíš bych to ale viděl na tu špatnou konfiguraci Apache – pak by bylo vhodné ji sem celou vložit, protože jinak můžeme jen hádat.

Co sa tyka certifikatov (ci k sebe sedia alebo nie) to ja asi ovplivnit neviem, spolieham sa na vygenerovane certifikaty letsencryptom
Předpokládám, že ta utilita generuje správné soubory. Ale mohl jste něco pokazit při tom testování.
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 06. 07. 2018, 19:53:58
Uz ma napadlo aj to, ze som si zmylil vhost, ale nie.
Moja konfiguracia vhostu je taka (tvorili sme ju spolu na fore (https://forum.root.cz/index.php?topic=18656.0)).
Config vhostu vyzera takto (domena je vymyslena aj adresar s certifikatmi je iny ako som uvadzal vyssie).
Kód: [Vybrat]
<VirtualHost *:80>
        DocumentRoot /var/www/www.moj_web.com
        ServerName moj_web.com
        ServerAlias www.moj_web.com
        ServerAdmin webmaster@moj_web.com
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^moj_web\.com$ [NC]
    RewriteRule ^(.*)$ http://www.moj_web.com$1 [R=301,NE,L]
        RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
</VirtualHost>

<VirtualHost *:443>
        DocumentRoot /var/www/www.moj_web.com
        ServerName moj_web.com
    ServerAlias www.moj_web.com
    ServerAdmin webmaster@moj_web.com
  <IfModule mod_ssl.c>
        SSLEngine on
        SSLCertificateKeyFile /etc/letsencrypt/live/moj_web.com/privkey.pem
        SSLCertificateFile /etc/letsencrypt/live/moj_web.com/cert.pem
        SSLCertificateChainFile /etc/letsencrypt/live/moj_web.com/chain.pem
#       SSLCertificateChainFile /etc/letsencrypt/live/moj_web.com/fullchain.pem
  </IfModule>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^moj_web\.com$ [NC]
        RewriteRule ^(.*)$ https://www.moj_web.com$1 [R=301,NE,L]
</VirtualHost>
Název: Re:problem s letsencrypt na androide
Přispěvatel: Filip Jirsák 06. 07. 2018, 20:22:57
Ten serverový certifikát máte vystavený pro obě domény (bez www i s www)? Zkontrolujte ještě pomocí openssl x509 (příklad jsem uváděl), jestli v tom /etc/letsencrypt/live/moj_web.com/chain.pem je správný certifikát Let's Encrypt. Žádnou jinou možnou chybu tam nevidím.

Když to testujete (z Androidu nebo tím OpenSSL), jste si jistý, že se připojujete na tenhle server?
Název: Re:problem s letsencrypt na androide
Přispěvatel: ByCzech 06. 07. 2018, 20:33:11
Ještě mě napadlo co jsem řešil na jiném serveru... mod_ssl nebyl s podporou SNI, apache pak vracel výchozí pro všechny virtuály - vyřešil jsem to náhradou za mod_gnutls (https://mod.gnutls.org/), pak je konfigurace takto:

Kód: [Vybrat]
GnuTLSEnable on
GnuTLSPriorities NORMAL
GnuTLSCertificateFile /path-to/fullchain-cert.pem
GnuTLSKeyFile /path-to/key.pem
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 06. 07. 2018, 21:45:42
Ten serverový certifikát máte vystavený pro obě domény (bez www i s www)? Zkontrolujte ještě pomocí openssl x509 (příklad jsem uváděl), jestli v tom /etc/letsencrypt/live/moj_web.com/chain.pem je správný certifikát Let's Encrypt. Žádnou jinou možnou chybu tam nevidím.

Když to testujete (z Androidu nebo tím OpenSSL), jste si jistý, že se připojujete na tenhle server?
Ano aj pre www aj bez www vid. https://forum.root.cz/index.php?topic=18939.msg273085#msg273085
Toto
Kód: [Vybrat]
openssl x509 -text -noout -in /etc/letsencrypt/live/web/cert.pem
openssl x509 -text -noout -in /etc/letsencrypt/live/web/chain.pem
vyzera byt OK.
Rozhodne sa pripojujem na vhost s ktorym to testujem.

Ještě mě napadlo co jsem řešil na jiném serveru... mod_ssl nebyl s podporou SNI, apache pak vracel výchozí pro všechny virtuály - vyřešil jsem to náhradou za mod_gnutls (https://mod.gnutls.org/), pak je konfigurace takto:

Kód: [Vybrat]
GnuTLSEnable on
GnuTLSPriorities NORMAL
GnuTLSCertificateFile /path-to/fullchain-cert.pem
GnuTLSKeyFile /path-to/key.pem
Toto naozaj neviem ci je s podporou SNI, alebo nie.

PS 2 dni budem off, takze sa s tym nemozem hrat  :(
Název: Re:problem s letsencrypt na androide
Přispěvatel: darebacik 10. 07. 2018, 08:39:07
Pridal som tam vsetky certifikaty
Kód: [Vybrat]
SSLCertificateKeyFile    /etc/letsencrypt/live/web/privkey.pem
SSLCertificateFile       /etc/letsencrypt/live/web/cert.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/chain.pem
SSLCertificateChainFile  /etc/letsencrypt/live/web/fullchain.pem
a stejne to pise, ze certifikat pochadza z nedoverihodnej autority
A to vám Apache takhle vezme? A jste si jist, že si to přebere správně? Proč to zbytečně komplikujete a nedáte tam přesně tu konfiguraci, kterou jsem vám napsal? Případně variantu, kterou napsal ByCzech – pokud jsou certifikáty v fullchain.pem správně seřazené.

Jaké certifikáty vám server vrací si můžete ověřit pomocí openssl s_client. Např.:

Kód: [Vybrat]
% openssl s_client -connect root.cz:443
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = root.cz
verify return:1
---
Certificate chain
 0 s:/CN=root.cz
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
[…]
Důležitá je ta část pod Certificate chain. Musí tam být dva certifikáty, 0 bude certifikát vašeho serveru (místo root.cz), 1 bude to samé, co je v tomto výpisu, protože root.cz také používá Let's Encrypt.

Zdravim, takze mam nejake nove zistenia. Neviem z akeho dovodu, ale zacalo mi to fungovat. Ked som to overoval cez openssl klienta, tak uz to mam podobne ako vy: je tam aj certifikat 0 a aj 1
Kód: [Vybrat]
Certificate chain
 0 s:/CN=moj_web.com
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
Ale vyskytol sa dalsi problem.
Ja mam momentalne 3x virtualhost a 3x som generoval certifikaty pre kazdy virtualhost. Generovanie skoncilo vzdy vystupom "congratulations". Samozrejme vzdy bol vygenerovany jedinecny certrtifikat do konkretneho adresara (takze tam chyba nie je).
Tento vystup popisuje jeden certifikat. Druhy bol vygenerovany do, /etc/letsencrypt/live/moj_web1.com atd .....
Kód: [Vybrat]
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/moj_web.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/moj_web.com/privkey.pem
   Your cert will expire on 2018-09-26. To obtain a new or tweaked
   version of this certificate in the future, simply run
   letsencrypt-auto again. To non-interactively renew *all* of your
   certificates, run "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
Problem ale vidim v tom, ze ked overujem certifikat, pre jeden z troch webov
Kód: [Vybrat]
openssl s_client -connect moj_web.com:443
openssl s_client -connect moj_web1.com:443
openssl s_client -connect moj_web2.com:443
Tak vzdy mam vysledok takyto:
Kód: [Vybrat]
Certificate chain
 0 s:/CN=moj_web.com
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
....
...
Vzda je tam moj_web.com. Cize vzdy to posiela certifikat z moj_web.com (a nie  moj_web1.com a  moj_web2.com)
Název: Re:Certifikáty Let's Encrypt nefungují na Androidu
Přispěvatel: Filip Jirsák 10. 07. 2018, 10:21:40
Když máte na jedné IP adrese a portu víc virtualhostů na HTTPS (rozlišených jménem), musí klient poslat na začátku SSL komunikace požadované jméno – ta technologie se jmenuje SNI. S OpenSSL tedy musíte navíc přidat parametr -servername.

Kód: [Vybrat]
openssl s_client -connect moj_web.com:443 -servername moj_web.com
openssl s_client -connect moj_web1.com:443 -servername moj_web1.com
openssl s_client -connect moj_web2.com:443 -servername moj_web2.com

Bez SNI server neví, které jméno serveru požadujete, tedy který má poslat certifikát, a použije první virtualhost v konfiguračním souboru.
Název: Re:Certifikáty Let's Encrypt nefungují na Androidu
Přispěvatel: darebacik 10. 07. 2018, 11:42:11
Aha, takze bez parametru servername to vybere vzdy prvy virtualhost podla abecedy.
Avsak klientovi (web prehliadacu), apache poskytne vzdy spravny certifikat (neviem to overit na androide (ale to nevadi)).
Název: Re:Certifikáty Let's Encrypt nefungují na Androidu
Přispěvatel: Filip Jirsák 10. 07. 2018, 12:05:19
Aha, takze bez parametru servername to vybere vzdy prvy virtualhost podla abecedy.
Ne podle abecedy, ale první v pořadí jak jsou uvedené v konfiguračním souboru.

Avsak klientovi (web prehliadacu), apache poskytne vzdy spravny certifikat (neviem to overit na androide (ale to nevadi)).
Prohlížeči s podporou SNI pošle server správný certifikát (pokud tedy máte přiřazené správné certifikáty ke správným virtualhostům). Dnes už podporují SNI všechny používané prohlížeče, konkrétní prohlížeč si můžete najít na Can I use… (https://www.caniuse.com/#feat=sni)
Název: Re:Certifikáty Let's Encrypt nefungují na Androidu
Přispěvatel: darebacik 10. 07. 2018, 14:13:52
No ale ja mam ku kazdemu virtualhostu zvlast konfigurak
napr.
Kód: [Vybrat]
/etc/apache2/sites-available/www.moj_web.com.conf
/etc/apache2/sites-available/www.moj_web1.com.conf
/etc/apache2/sites-available/www.moj_web2.com.conf
takze potom to asi berie podla abecedy
Název: Re:Certifikáty Let's Encrypt nefungují na Androidu
Přispěvatel: Filip Jirsák 10. 07. 2018, 14:43:19
Ty konfiguráky jsou pomocí Include vložené do hlavního souboru, takže z pohledu Apache je to pak jeden velký konfigurák. Soubory se ale opravdu vkládají v abecedním pořadí, pokud je v Include uvedena maska s hvězdičkou.
Název: Re:Certifikáty Let's Encrypt nefungují na Androidu
Přispěvatel: darebacik 10. 07. 2018, 18:28:05
O, dakujem vsetkym zucasnenym za cenne rady a podporu