Как добавить центр сертификации (CA) в Ubuntu?

Как добавить центр сертификации (CA) в Ubuntu? Сертификаты

Другие полезные команды openssl

Создание закрытого ключа:

openssl genrsa -des3 -out domain.key 2048

Создание запроса на основе имеющегося ключа:

openssl req -key domain.key -new -out domain.csr

Просмотр сертификата:

openssl req -text -noout -verify -in domain.csr

Генерация паролей с помощью openssl:

openssl rand -base64 9

Запрос ssl сертификата в linux

После того как отредактировали файл создаем ключ и запрос в одной команде:

openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

Эта команда создаст файл закрытого ключа типа rsa длиной 2048 бит. Вы можете изменить эти параметры по своему усмотрению. Далее последует диалог, в котором необходимо указать основные поля сертификата.

Создание запроса ssl сертификата в Linux
Поле Common Name должно совпадать с именем хоста к которому вы выпускаете сертификат

Обратите внимание на поле Common Name такое же имя стоит прописать в конфиге выше в качестве одного из полей в alt_names.

Если пришло время и вы обновляете сертификат, то выпустить запрос можно получив информацию из существующего сертификата:

openssl x509 -in domain.crt -signkey domain.key -x509toreq -out domain.csr

Как добавить сертификат центра сертификации (ca) в доверенные в linux – записная книжка инженера программиста

Добавление доверенные корневые центры сертификации в командной строке.

Суть метода очень проста:

  1. Добавить свой корневой CA сертификат в папку, предназначенную для таких сертификатов.
  2. Запустить программу для обновления общесистемного списка сертификатов.

Пути и команды в разных дистрибутивах Linux чуть различаются. Для (Debian, Ubuntu) и их производных.

Просмотреть Subject всех корневых CA сертификатов можно командой:

Для демонстрации я добавлю сертификат с Common Name, включающим «HackWare», тогда для проверки, имеется ли сертификат с таким именем среди корневых CA, я могу использовать команду:

Для добавления своего корневого CA в доверенные в Debian, Kali Linux, Linux Mint, Ubuntu и их производных:

1. Проверьте, существует ли директория /usr/local/share/ca-certificates:

Если её ещё нет, то создайте:

Сертификат должен быть в формате PEM (обычно так и есть) и иметь расширение .crt — если расширение вашего сертификата .pem, то достаточно просто поменять на .crt.

2. Скопируйте ваш сертификат командой вида:

3. Запустите следующую команду для обновления общесистемного списка:

Пример вывода:

Либо запустить добавление в интерактивном режиме

Проверим наличие нашего CA сертификата среди доверенных:

Сертификат успешно найден:

Как добавить центр сертификации (CA) в Ubuntu?

Чтобы его удалить:

Для добавления своего корневого CA в доверенные в Arch Linux, BlackArch и их производных:

1. Выполните команду вида:

2. Обновите общесистемный список доверенных CA:

Чтобы удалить этот сертификат:

Как добавить центр сертификации (ca) в ubuntu?

Опираясь на dwmw2 в ответ , вы можете сказать , приложения , которые используют NSS для его управления сертификатами использовать систему доверия магазин.

libnss3по умолчанию поставляется с набором корневых сертификатов CA (только для чтения libnssckbi.so), поэтому большую часть времени вам нужно вручную добавлять их в локальное хранилище доверенных сертификатов пользователя, расположенное в $HOME/.pki/nssdb. p11-kitпредлагает замену, libnssckbi.soкоторая действует как адаптер для общесистемных корневых сертификатов, установленных в /etc/ssl/certs.

Редактировать:

Кажется, что существует больше версий libnssckbi.so, чем просто libnss3. Ниже приведен скрипт для их поиска, резервного копирования и замены ссылками p11-kit:

sudo apt-get update && sudo apt-get install -y p11-kit libnss3
find / -type f -name "libnssckbi.so" 2>/dev/null | while read line; do
    sudo mv $line ${line}.bak
    sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so $line
done

Оригинальные инструкции:

Для этого установите p11-kitи libnss3(если они еще не установлены):

sudo apt-get update && sudo apt-get install -y p11-kit libnss3

Затем сделайте резервную копию существующего, libnssckbi.soпредоставленного libnss3:

sudo mv /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so.bak

Наконец, создайте символическую ссылку:

sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so

Чтобы убедиться, что это сработало, вы можете запустить ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.soи показать ссылку:

lrwxrwxrwx 1 root root 49 Apr  9 20:28 /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so -> /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so

Теперь, если вы добавите сертификат в хранилище CA, используя update-ca-certificatesэти сертификаты, теперь они будут доступны для приложений, использующих NSS ( libnss3), таких как Chrome.

Про сертификаты:  Решение проблем | ГАУ РК "ЦИТ". Портал по безопасности

Как установить ssl сертификат на nginx (linux) | облачный виртуальный хостинг cloudlite

Когда вы сгенерировали CSR-запрос и приобрели SSL сертификат, воспользуйтесь этой инструкцией по установке сертификата на веб-сервер Nginx под управлением Linux: Ubuntu, Debian или CentOS.

После заказа SSL сертификата файлы для его установки отразятся в панели управления (меню SSL): .CA – файл сертификата Центра Сертификации (Certificate Authority). .CRT – файл сертификата вашего веб-сайта.

Как добавить центр сертификации (CA) в Ubuntu?

Как загрузить нужные файла на веб-сервер

Прежде всего загрузите файлы .ca и .crt на веб-сервер. При отсутствии графического окружения рабочего стола на сервере загрузка файлов может осуществиться на другой компьютер. Впоследствии их можно будет перенести.

Внимание: предполагается, что нужная для применения пара закрытый/открытый ключ была создана на том же веб-сервере, куда будет перенесен приобретенный сертификат. При создании ключей на другом сервере следует также перенести файл закрытого ключа .key на ваш веб-сервер (аналогично описанной ниже процедуре копирования файлов сертификатов).

Как переносить сертификаты с компьютера Linux/Mac OS:

Проще всего – при помощи опции SCP, встроенной в возможность терминала вашего компьютера:

Скачайте файлы .CA и .CRT на локальный компьютер. Откройте терминал и папку с сохраненными сертификатами (напр., Downloads):

cd ~/Downloads

Скопируйте сертификаты вашего сайта и Центра Сертификации на веб-сервер:

scp mydomain.ru_crt.crt mydomain.ru_ca.crt user@1.1.1.1:/etc/ssl

Здесь:

scp – команда для копирования файлов

mydomain.ru_crt.crt – имя загруженного из панели файла сертификата вашего веб-сайта

mydomain.ru_ca.crt – имя загруженного из панели файла сертификата Центра Авторизации

user – имя вашего пользователя для подключения к серверу через ssh (часто используется root)

1.1.1.1 – IP-адрес вашего веб-сервера

/etc/ssl – директория на удаленном сервере, куда следует сохранить загружаемые файлы.

Как переносить сертификаты с компьютера Windows:

Скачайте, установите и включите программу WinSCP. В открывшемся окне наберите данные для подключения к вашему серверу по SSH. Слева в окне отразятся файлы на локальном компьютере, справа – на подключенном удаленном сервере. Выберите или создайте директорию, куда нужно сохранить сертификаты, в правой части окна. Перетащите файлы .CA и .CRT в эту директорию из левой части окна.

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

Если закрытый ключ .key сгенерирован прямо на сервере, то для его копирования в другую директорию подойдет команда:

cp /home/root/private.key /etc/ssl/private.key

Здесь:

cp – команда копирования

/home/root/ – путь до файла ключа

private.key – имя файла ключа

/etc/ssl/private.key – путь, по которому необходимо скопировать файл ключа

Вы можете удалить файл ключа из старого расположения такой командой:

rm /home/root/private.key

Как настроить веб-сервер Nginx на применение SSL сертификата

После копирования файлов сертификата сайта и Центра Сертификации вы должны отредактировать параметры вашего веб-сервера Nginx. Подключитесь к вашему серверу по SSH от имени пользователя root и выполните такие действия:

1.       Объедините файлы сертификата Центра Сертификации (.CA) и сертификата вашего веб-сайта (.CRT) в один документ:

cat /etc/ssl/mydomain.ru_crt.crt /etc/ssl/mydomain.ru_ca.crt >> mydomain.crt

2.       Откройте файл конфигурации сайта, для которого устанавливается SSL сертификат. Если, к примеру, параметры веб-сайта хранятся в файле /etc/nginx/sites-enabled/default:

nano /etc/nginx/sites-enabled/default

Про сертификаты:  Как сделать родословную кошке без документов и зачем она нужна

Внимание: На Ubuntu/Debian файлы параметров сайтов Nginx обычно располагаются в директории /etc/nginx/sites-enabled/ . На CentOS стандартное расположение – /etc/nginx/conf.d/

Для поиска интересующей конфигурации подойдет команда ls /директория/конфигураций (напр. ls /etc/nginx/sites-enabled), отображающая полный список файлов в нужной директории.

Теперь с помощью команды nano можно открыть определенный файл (напр. nano /etc/nginx/sites-enabled/default). Чтобы проверить, что открытый файл является конфигурацией вашего сайта, найдите в нем строку server_name. Ее значение должно соответствовать домену, для которого вы устанавливаете SSL сертификат (напр. www.mydomain.ru)

Внимание для CentOS: если на сервере не установлен редактор nano, используйте такую команду для его установки:

используйте такую команду для его установки:

yum install nano

Затем добавьте приведенные ниже параметры в открытый файл конфигурации:

listen 443 ssl;

ssl_certificate /etc/ssl/mydomain.crt;


ssl_certificate_key /etc/ssl/private.key;

Здесь:

/etc/ssl/mydomain.crt – путь до файла сертификатов вашего сайта и центра сертификации

/etc/ssl/private.key – путь к файлу вашего закрытого ключа

Внимание: если вы хотите, чтобы после установки SSL сертификата ваш сайт был доступен только по безопасному протоколу https (порт 443), отредактируйте файл его конфигурации по аналогии с Примером 1. Если же нужно, чтобы сайт также оставался по-прежнему доступен по незащищенному протоколу http (порт 80) – см. Пример 2

(изменения выделены жирным шрифтом).

Пример 1 (только HTTPS):

server {

       listen 443 ssl default_server;


        root /var/www/html;


        # Add index.php to the list if you are using PHP


        index index.html index.htm index.nginx-debian.html;

server_name www.mydomain.ru;

        ssl_certificate /etc/ssl/mydomain.crt;


        ssl_certificate_key /etc/ssl/private.key;


        location / {


                # First attempt to serve request as file, then


                # as directory, then fall back to displaying a 404.


                try_files $uri $uri/ =404;


        }


        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000


        #


        #location ~ .php$ {


        #       include snippets/fastcgi-php.conf;


        #


        #       # With php7.0-cgi alone:


        #       fastcgi_pass 127.0.0.1:9000;


        #       # With php7.0-fpm:


      #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;


        #}


        # deny access to .htaccess files, if Apache’s document root


        # concurs with nginx’s one


        #


        #location ~ /.ht {


        #       deny all;


        #}

Пример 2 (HTTPS HTTP):

server {

        listen 80 default_server;


        listen [::]:80 default_server;


        listen 443 ssl;


        # Note: You should disable gzip for SSL traffic.


        # See:
https://bugs.debian.org/773332

        #


        # Read up on ssl_ciphers to ensure a secure configuration.


        # See:
https://bugs.debian.org/765782

        #


        # Self signed certs generated by the ssl cert package


        # Don’t use them in a production server!


        #


        # include snippets/snakeoil.conf;


        root /var/www/html;


        # Add index.php to the list if you are using PHP


        index index.html index.htm index.nginx-debian.html;


        server_name
www.mydomain.ru;

        ssl_certificate /etc/ssl/mydomain.crt;


        ssl_certificate_key /etc/ssl/private.key;


        location / {


                # First attempt to serve request as file, then


                # as directory, then fall back to displaying a 404.


                try_files $uri $uri/ =404;


        }


        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000


        #


        #location ~ .php$ {


        #       include snippets/fastcgi-php.conf;


        #


        #       # With php7.0-cgi alone:


        #       fastcgi_pass 127.0.0.1:9000;


        #       # With php7.0-fpm:


      #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;


        #}


        # deny access to .htaccess files, if Apache’s document root


        # concurs with nginx’s one


        #


        #location ~ /.ht {


        #       deny all;


        #}


}

Про сертификаты:  Как перенести «Астрал Отчет» на другой ПК: разбираем 2 способа

Перезапустите сервис nginx:

Ubuntu/Debian:

/etc/init.d/nginx restart

CentOS:

service nginx restart

Если на сервере настроен файрвол iptables, нужно разрешить входящие подключения по протоколу https (порт 443) для вашего файрвола. Следуйте документации к вашей ОС, т.к. в разных дистрибутивах Linux работа с iptables осуществляется различно. Несколько примеров:

Ubuntu 16.04:

ufw allow 443/tcp

После этого SSL сертификат установлен на веб-сервер Apache. Чтобы проверить правильность настроек, откройте ваш-веб сайт в браузере по протоколу https (например, https://mydomain.ru). При верной установке сертификата в адресной строке вашего браузера появится иконка замка, при клике на нее отразится информация о приобретенном вами SSL сертификате.

Настройка дополнительных полей ssl сертификата в linux

Первым делом необходимо настроить список и значения дополнительных полей в сертификате, а именно Subject Alternative Names. Указывать их необходимо, чтобы избежать ошибки [missing_subjectAltName] и NET::ERR_CERT_COMMON_NAME_INVALID в Google Chrome и других браузерах. В данных полях необходимо перечислить все dns имена и ip адреса, по которым может быть открыт сайт.

Задаются параметры через файл /etc/ssl/openssl.cnf. Если у вас данный конфигурационный файл не изменялся то необходимо внести следующие изменения:

  1. В разделе [req] добавить строку: req_extensions = v3_req
  2. В разделе [v3_req] добавить строку: subjectAltName = @alt_names
  3. Создать раздел [ alt_names ] и добавить в него все альтернативные имена в формате:

Подпись ssl сертификата linux в доменном центре сертификации

Копируем содержимое csr файла в буфер, затем идем на веб сайт доменного центра сертификации.

Первый шаг подписи сертификата доменным центром сертификации
Кликаем ссылку запрос сертификата

В поле шаблон сертификата выбираем Веб-сервер и кликаем по кнопке «Выдать».

Скачивание ssl сертификата с сайта доменного центра сертификации
Переключаем формат сертификата в Base64

Кликаем по ссылке «Загрузить сертификат» и сохраняем файл сертификата. После этого его можно загрузить на сервер и настроить на использование вебсервером.

Поскольку доменный центр сертификации по умолчанию распространяет свой корневой сертификат на все машины в домене Active Directory, либо вы сделали это с помощью GPO, то все подписанные им сертификаты на машинах в домене будут валидными. Таким образом и SSL сертификат в Linux подписанный доменным центром сертификации прикрученный к внутрикорпоративному веб-серверу тоже не вызовет ошибок в браузере на рабочей машине пользователя.

Данная инструкция пригодится при выпуске сертификата например для установки на Proxmox Mail Gateway или любой другой веб-сервер.

Установка корневого сертификата на сервере (ubuntu)

Прежде всего сохраните сертификат в base64 формате. Сделать это можно при экспорте из консоли управления сертификатами в windows либо с помощью команды:

openssl x509 -outform der -in CAroot.pem -out CAroot.crt 

Обратите внимание, что расширение файла в base64 формате обязательно должно быть crt. Затем необходимо скопировать файл в папку /usr/local/share/ca-certificates

sudo cp CAroot.crt /usr/local/share/ca-certificates

И обновить список сертификатов в системе с помощью команды:

sudo update-ca-certificates

Оцените статью
Мой сертификат
Добавить комментарий