<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">6 августа 2015 г., 3:18 пользователь Michael A. Kangin написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Добрый день.<br>
<br>
как у нас правильно импортировать корневой и промежуточный сертификаты?<br>
общесистемно, так сказать.<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div>Одной красной кнопки для этой задачи нет. Разные ssl библиотеки, и даже разные приложения, использующие одну и ту же библиотеку могут пользоваться различными хранилищами корневых сертификатов. Яркий пример - firefox и chromium. Оба используют libnss, но имеют собственные хранилища. <br><br></div><div>Если начинать с библиотек, то как минимум нужно смотреть на libnss и openssl. <br><br>OpenSSL по дефолту (у нас) использует бандл /usr/share/ca-certificates/ca-bundle.crt, а также все файлы из /var/lib/ssl/certs . Эти файлы должны иметь определенное имя вида &lt;хэш от subject&gt;.&lt;число&gt;. Хэш можно посчитать при помощи утилит openssl. Например: <br><br></div></div>$ openssl x509 -hash -fingerprint -noout -in ca.crt<br>5f8adca0<br>SHA1 Fingerprint=59:04:C9:FB:74:ED:EE:BD:BA:99:67:53:BF:3A:48:09:93:3D:E1:15<br>$ sudo install -m 444 ca.crt /var/lib/ssl/certs/5f8adca0.0<br><br></div><div class="gmail_extra">У libnss другая идеология по менеджменту сертификатов - вместо сертификатов в pem формате используется несколько баз данных. Системные хранилища находятся в /etc/pki/nssdb/ . Менеджмент этой базы данных производится при помощи утилиты certutil - <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil">https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil</a> .<br><br></div><div class="gmail_extra">Ну и теперь самое интересное - браузеры для каждого пользователя создают свою базу хранилища сертификатов, firefox в ~/.mozilla/firefox/&lt;ID профиля&gt;, хромиум в ~/.pki/nssdb. Импортировать корневые сертификаты придется в обеи базы для каждого пользователя. Можно через certutil, можно через интерфейс самих браузеров. <br><br></div><div class="gmail_extra">Теперь, что касается промежуточных сертификатов. OpenSSL не умеет загружать &quot;дефолтные&quot; промежуточные сертификаты. А вот в базу libnss промежуточные сертификаты добавлять можно. Правда встает вопрос - а зачем, вообще, импортировать промежуточные сертификаты? Правильно настроенный сервер всегда высылает цепочку со всеми промежуточными сертификатами, так что явно добавлять их смысла большого нету, тем более, что браузеры сами их кэшируют, как только увидят в первый раз. <br><br></div><div class="gmail_extra">P.S. А еще есть GnuTLS, но с ним я ни разу не работал, может, кто еще подскажет. Он точно использует бандл /usr/share/ca-certificates/ca-bundle.crt, а вот можно ли ему подсунуть свои дополнительные сертификаты, которые бы рассматривались как дефолтные системные, я не знаю. <br></div><div class="gmail_extra"><br></div><div class="gmail_extra">-- <br><div class="gmail_signature">С уважением,<br>Владимир.</div>
</div></div>