iOS 16 a non-trusted intermediate CA

Wasper

  • ***
  • 120
    • Zobrazit profil
    • E-mail
iOS 16 a non-trusted intermediate CA
« kdy: 12. 05. 2023, 20:25:44 »
Zdravím,
rád bych se zeptal, jestli někdo nemáte zkušenost s následujícím problémem.
Mějme privátní CA, dejme tomu ca.moje.org - ta je importnuta do trust store, a je označena jako trusted root CA (Settings - General - About - Certificate trust setting).
Mějme web, podepsaný touhle CA - řekněme web.moje.org. Ten funguje v Safari perfektně.

A pak mějme nějakou proxy, která přebaluje SSLko. Proxy dostala vlastní CA certifikát, dejme tomu squid.moje.org. Když vlezu odkuďkoli na třeba root.cz, tak je vše v pořádku, trust path je následující:

ca.moje.org -> squid.moje.org -> root.cz

Problém je, že to funguje odevšuď, z Win, z Linuxu, dokonce včetně star39ho iPhone s iOS15, ale ne v iOS16, ten mě tvrdohlavě tvrdí, že "not trusted" a já nemůžu přijít na to proč (on to nepoví). Standardní hledání po netu nikam nevedlo, odpovědi jako "nastav tomu trusted" moc nepomáhají když to evidentně trusted je (viz ten test s web.moje.org).
Pokud ale vygeneruju pro squid samotnou self-signed CA a tu importnu, tak to ale začne fungovat.

Nemáte prosím někdo s tímhle zkušenost? Nějaký chybějící nebo přebývající attribut/extension?


M_D

  • ****
  • 335
    • Zobrazit profil
    • E-mail
Re:iOS 16 a non-trusted intermediate CA
« Odpověď #1 kdy: 12. 05. 2023, 22:05:06 »
Co máš v X509v3 Authority Key Identifier toho root.cz? Je tam DirName ukazující na tu root CA ca.moje.org+její serial nebo jen keyid té squid.moje.org?
Ale bez tohoto by mělo asi řvát i vše ostatní.
V mluvě OpenSSL x509v3_config:
authorityKeyIdentifier = keyid, issuer:always

Wasper

  • ***
  • 120
    • Zobrazit profil
    • E-mail
Re:iOS 16 a non-trusted intermediate CA
« Odpověď #2 kdy: 12. 05. 2023, 22:44:12 »
Co máš v X509v3 Authority Key Identifier toho root.cz? Je tam DirName ukazující na tu root CA ca.moje.org+její serial nebo jen keyid té squid.moje.org?
Ale bez tohoto by mělo asi řvát i vše ostatní.
V mluvě OpenSSL x509v3_config:
authorityKeyIdentifier = keyid, issuer:always
Hmm, diky, dobry hint, jdu si hrat

V koncovem certu je jen authorityKeyIdentifier = KeyID (sedi)

u intermediatky:
authorityKeyIdentifier = keyid:always, issuer:always
a je v ni Dirname, KeyID i Serial (a sedi)
subjectKeyIdentifier = keyid

Re:iOS 16 a non-trusted intermediate CA
« Odpověď #3 kdy: 28. 05. 2023, 15:13:50 »
Posílá se i ten intermediate certifikát? Pokud ne, může nastat pěkný nepořádek:

* Někdy to prohlížeč přijme, protože tu intermediate CA už někdy viděl a zapamatoval.
* Někdy to stejná verze prohlížeče odmítne, protože tu intermediate CA ještě neviděl.
* Některé prohlížeče se chovají více deterministicky a odmítají certifikát bez celého chainu, i když tu intermediate CA již někdy viděly.

jjrsk

  • ****
  • 496
    • Zobrazit profil
Re:iOS 16 a non-trusted intermediate CA
« Odpověď #4 kdy: 30. 05. 2023, 20:50:55 »
Najdi si pozadavky na duveryhodny cert (vali se to nekde na jejich webu) ... jabka sou proste jabka ... a pocitej s tim, ze se to zhorsi.

Moje zkusenosti (firemni CA) = nekterym jabkum staci importovat CA cert jako duveryhodny, a pak uz drzi pysk. Ovsem nekterym jinym musis tak jako tak extra importovat certifikaty jednotlivych sajt. A i to vse za predpokladu, ze ten tvuj certifikat splnuje ty jejich pozadavky. Tzn zapomen ze bude platny 2 roky treba ...

Tudiz pokud se pohybujes v te druhe variante, tak se obavam, ze ti neni pomoci, protoze tohle s proxy nijak nevyresis.