Как добавить сертификат SSL в Chrome под Ubuntu

Хром очень печётся о безопасности пользователя, поэтому иногда можно увидеть вместо сайта вот такое предостережение:

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

В фаерфоксе подобная проблема решается прямо в браузере несколькими кликами, нужно всего лишь добавить сертификат к доверенным. Любителям хрома под линукс придётся использовать командную строку.

Решение

Некто Алекс придумал способ немного автоматизировать процесс:

  1. Ставим себе libnss3-tools:
    sudo apt-get install libnss3-tools
  2. Создаём исполняемый файл import-cert.sh
    #!/bin/sh
    #
    # usage: import-cert.sh remote.host.name [port]
    #
    REMHOST=$1
    REMPORT=${2:-443}
    exec 6>&1
    exec > $REMHOST
    echo | openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
    certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "$REMHOST" -i $REMHOST
    exec 1>&6 6>&-
  3. Запускаем скрипт:
    import-cert.sh example.com 443

    (где 443 — необязательный параметр, порт SSL)

    Вот и всё, сертификат добавился в NSS Shared DB, mission accomplished.

На всякий случай

Если что-то пошло не так, всегда можно через консоль посмотреть, какие сертификаты добавлены:

certutil -L -d sql:$HOME/.pki/nssdb

 или удалить негодный сертификат:

certutil -D -n <em>имя_сертификата</em> -d sql:$HOME/.pki/nssdb

Итого

Пока приходится использовать вот такие «костыли», но, скорее всего, в будущем появится нормальный менеджер сертификатов под Linux и данный скрипт будет более не нужен, на что я очень надеюсь.

, , ,

Комментарии