25

У меня установлен сертификат Go Daddy SSL, и он отлично работает везде, кроме Android.

https://www.ssllabs.com/ssltest/analyze.html говорит, что цепочка неполная, и я прочитал о переполнении стека, что цепочка SSL в неправильном порядке не будет работать на Android.

Но как мне это привести в порядок? На моем сервере? Сертификат SSL сам по себе должен быть повторно введен? Переместить вещи по FTP?

3 ответа3

14

После ответа zakjan у меня возникла проблема, когда я пытался использовать jquery для выполнения AJAX-запроса на моем новом защищенном сервере в веб-представлении Android. Это работало в браузере, но не в моем приложении.

Я использовал этот сайт: https://certificatechain.io/

Я вставил текст моего подписанного файла .crt, который я получил от Comodo (positiveSSL), и он вернул мне объединение всего, что мне было нужно. Я сохранил его как мой домен + "chain.crt" (см. Ниже)

Затем в своих конфигурациях apache я ввел что-то подобное для этого конкретного виртуального хоста:

SSLEngine On
SSLCertificateFile /etc/ssl/localcerts/example_com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/example.com.key
SSLCACertificateFile /etc/ssl/localcerts/example.com.chain.crt

После этого у моего Android-приложения не было проблем с использованием ajax для POST на моем сервере. Я попробовал это на 2 реальных устройствах, одно работает 2.3.4, одно работает 4. что-то. И на эмуляторе работает 2.3. Все сработало.

Надеюсь, это поможет.

8

Цепочка была в файле crt, что оригинальный SSL работал.

Для GoDaddy есть 2-й сертификат - gd_bundle.crt

Скопируйте эту информацию и добавьте ее в crt, установленный на сервере.

Таким образом, исходный crt на сервере имел 1 сертификат, а после него будет 3 на тот же файл. Это цепь.

У меня все еще есть якорь в цепочечных проблемах на ssllabs.com, но это не проблема, просто возможность оставить или выйти - согласно - https://security.stackexchange.com/questions/24561/ssltest-chain-issues -contains якорь /24566 # 24566

7

Вы можете решить проблему неполной цепочки сертификатов вручную, объединив все сертификаты от сертификата до доверенного корневого сертификата (эксклюзивно, в этом порядке), чтобы предотвратить такие проблемы. Обратите внимание, что доверенный корневой сертификат не должен быть там, так как он уже включен в хранилище корневых сертификатов системы.

Вы должны быть в состоянии получить промежуточные сертификаты от эмитента и объединить их вместе самостоятельно. Кстати, я написал сценарий для автоматизации процедуры, он требует сертификат для выдачи правильных цепочек сертификатов. https://github.com/zakjan/cert-chain-resolver

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .