Однажды вам может понадобиться получить SSL-сертификат сайта и сохранить его локально.
Например, вы можете получить сообщение об ошибке, что не можете клонировать Git-репозиторий из-за самоподписанного сертификата, и для решения этой проблемы вам нужно будет скачать SSL-сертификат и сделать его доверенным для вашего Git-клиента.
В следующей статье я покажу, как скачать SSL-сертификат с сервера (по URL сайта) с помощью браузеров Google Chrome, Mozilla Firefox и Internet Explorer, а также как получить SSL-сертификат из командной строки, с помощью openssl
.
Дельный Совет: Создание самоподписанного SSL-сертификата! Читать Далее →
Экспорт SSL Сертификата Сайта
Google Chrome
Экспорт SSL-сертификата веб-сайта с помощью Google Chrome:
- В адресной строке кликните на кнопку
Secure
(замок) - Кликните
Show certificate
- Перейдите на вкладку
Details
- Кликните
Export
- Укажите имя файла, в который вы хотите сохранить SSL-сертификат, оставьте формат «Base64-encoded ASCII, single certificate» и кликните на кнопку
Save
Mozilla Firefox
Экспорт SSL-сертификата веб-сайта с помощью Mozilla Firefox:
- В адресной строке кликните на кнопку
Site Identity
(замок) - Кликните на стрелку
Show connection details
- Кликните
More Information
- Кликните
View Certificate
- Перейдите на вкладку
Details
- Кликните
Export
- Укажите имя файла, в который вы хотите сохранить SSL-сертификат, оставьте формат «X.509 Certificate (PEM)» и кликните на кнопку
Save
Дельный Совет: Узнайте срок действия SSL сертификата из командной строки в Linux! Самый быстрый способ! Читать далее →
Internet Explorer
Загрузите и сохраните SSL-сертификат сайта с помощью Internet Explorer:
- В адресной строке кликните на кнопку
Security report
(замок) - Кликните
View Certificate
- Перейдите на вкладку
Details
- Кликните
Copy to File...
- Кликните
Next
- Выберите формат «Base-64 encoded X.509 (.CER)» и кликните на кнопку
Next
- Укажите имя файла, в который вы хотите сохранить SSL-сертификат
- Кликните на
Next
, а затем на кнопкуFinish
OpenSSL
Получите SSL-сертификат сайта с помощью openssl
:
$ echo | openssl s_client -servername NAME -connect HOST:PORT |\ sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > certificate.crt
Краткое пояснение:
Опция | Описание |
---|---|
-connect HOST:PORT |
Хост и порт для подключения |
-servername NAME |
TLS SNI (Server Name Indication) расширение (имя сайта) |
certificate.crt |
Сохранить SSL-сертификат в этот файл |
Пример:
$ echo | openssl s_client -servername google.com -connect google.com:443 |\ sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > certificate.crt
I’m a bit confused. Not only is Base64 not the default, but also, while some sources agree that Base64 is to be used, other sources advise to use DER instead. If I export and install both formats, will Java automatically pick the correct one over the broken one?
As always, it depends on your Java and its current conventions.
I guess I’m just here to remind that either way it’s likely good to plan for something more robust to keep things from breaking.
Very useful
EHX, yes Base64 is not the default and the guide is not updated (Chrome) I solved by just saving the certificate (checking the Base64 option) to an existing local file, then used it in my certificate-pinning implementation (Android and Kotlin but the concept is the same in Java)
In chrome on a mac, there is no longer an option to export the certificate. However, you may drag it to a finder window.
If I use $ echo | openssl s_client -servername google.com -connect google.com:443 |\
sed -ne ‘/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p’ > certificate.crt
In osx high Sierra I got «sed command not found». Although Im pretty sure I have it installed, as if I run just «sed» it is listed there.
were u able to fix it?>
old: …:443 |\ sed …
new: …:443 | sed …
new error:
«verify error:num=20:unable to get local issuer certificate»
I can’t use google search in ANY browser and i tried almost every possible «solution» in the internet…
This is the problem…
I know the problem is the certificate, any ideas?