Как да задам предварително OkHTTP sha1 хеш за фиксиране на сертификат?

Бих искал предварително да задам sha1 хешове за фиксиране на сертификат с помощта на okhttp CertificatePinner Builder. Примерният код на споменава да опитате достъп до https url с лош пин хеш и след това да прегледате изключението, за да получите действителния хеш.

В идеалния случай, ако вече обновя подписа и веригата на моя сертификат, като прегледам публикуваните публични ключове на сертификата и свързания sha1 подпис, мога просто да взема хеша от публичните документи или изгледа на браузъра си на подробностите за сертификата.

За съжаление стойността на „sha1 подпис“, показана за сертификат, е в шестнадесетичен формат и не изглежда очевидно да корелира с sha1 хеша, показан в изключението.

Има ли някакъв начин да определя sha1, който трябва да използва за фиксиране на сертификат, без да преминава през процеса на изключение?

Освен това не сте сигурни дали „sha1 хешът“, който трябва да се използва за Okhttp, е синоним на „thumbprint“ на сертификат?


person Dave Cobb    schedule 11.05.2015    source източник
comment
Аз също имам подобен проблем. Показаната стойност е в шестнадесетичен формат и преобразуването й в SHA256 чрез онлайн инструмент не помага. Успяхте ли да го разрешите?   -  person Androidme    schedule 04.08.2017


Отговори (1)


Ако позволите на OkHttp да го отпечата вместо вас е твърде лесно, може да предпочетете да използвате подобен инструмент, който Moxie Marlinspike написа.

person Jesse Wilson    schedule 11.05.2015
comment
Има ли начин да накарате okHttp да отпечата SHA ключа в следния формат? javax.net.ssl.SSLPeerUnverifiedException: Неуспешно фиксиране на сертификат! Верига на партньорски сертификати: sha256/afwiKY3RxoMmLkuRW1l7QsPZTJPwDS2pdDROQjXw8ig=: CN=publicobject.com, OU=PositiveSSL sha256/klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY=: CN=COMODO RSA Secure Server CA I получавам всичко в шестнадесетичен - person Androidme; 04.08.2017