- Installation SSL Certificate on Ubuntu/Linuxmint/Debian to Secure Apache
- Installation SSL Certificate on Ubuntu/Linuxmint/Debian to Secure Apache
- Prerequisites
- Installation
- Добавляем корневой доверенный сертификат в Linux
- Установка корневого сертификата в Linux
- Добавить корневой доверенный сертификат для браузеров Mozilla, Chrome
- Добавление корневого доверенного сертификата в Linux Mint
Installation SSL Certificate on Ubuntu/Linuxmint/Debian to Secure Apache
Installation SSL Certificate on Ubuntu/Linuxmint/Debian to Secure Apache
SSL is a web protocol that is used to send trafic between server and client in a secured manner. It provides secure and encrypted transactions between the browser and websites. This protocol generates a certificate which the end user has to authenticate. In this tutorial, we will cover the installation of SSL to initiate secure session on Ubuntu 18.04.
Prerequisites
Install LAMP(Apache, MariaDB, php)
Installation of OpenSSL
Installation
Create the SSL Certificate as follows
[email protected]:~# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/ca.key -out /etc/ssl/certs/ca.crt Generating a 2048 bit RSA private key . +++ . +++ writing new private key to '/etc/ssl/private/ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) \[AU\]:IN State or Province Name (full name) \[Some-State\]: Locality Name (eg, city) \[\]: Organization Name (eg, company) \[Internet Widgits Pty Ltd\]: Organizational Unit Name (eg, section) \[\]: Common Name (e.g. server FQDN or YOUR name) \[\]: Email Address \[\]:
Create own HTML directory and site configuration
[email protected]:~# mkdir /var/www/mine [email protected]:~# vim /var/www/mine/index.php \[..\] Welcome to Linuxhelp.com \[..\]
Change ownership and permission of the as own site follows
[email protected]:~# chown -R www-data.www-data /var/www/mine/ [email protected]:~# chmod -R 775 /var/www/mine/
Create Virtual Host for accessing the site with SSL certificate as shown below
r[email protected]:~# vim /etc/apache2/sites-available/mine-ssl.conf \[..\] SSLEngine on SSLCertificateFile /etc/ssl/certs/ca.crt SSLCertificateKeyFile /etc/ssl/private/ca.key servername www.linuxhelp1.com Documentroot /var/www/mine \[..\]
[email protected]:~# a2ensite mine-ssl.conf Enabling site mine-ssl. To activate the new configuration, you need to run: systemctl reload apache2
Disable default site access
[email protected]:~# a2dissite default-ssl.conf Site default-ssl disabled. To activate the new configuration, you need to run: systemctl reload apache2
[email protected]:~# a2enmod ssl Considering dependency setenvif for ssl: Module setenvif already enabled Considering dependency mime for ssl: Module mime already enabled Considering dependency socache\_shmcb for ssl: Module socache\_shmcb already enabled Module ssl already enabled
Restart the apache service to make the changes effect
[email protected]:~# systemctl restart apache2
Now you can proceed the further installation and configuration from the browser by navigating to the following URL: https://
Untrusted connection page appers. Click ‘Advanced’
Then click add exception.
Click Confirm security Exception.
You will see the Website that we have configured with SSL certificate
With this, the method to install of SSL to initiate secure session on Ubuntu 18.04 comes to an end.
Добавляем корневой доверенный сертификат в Linux
28.09.2022
itpro
CentOS, Linux, Ubuntu
комментария 4
В этой статье мы покажем, как добавить (установить) новый сертификат в список доверенных корневых сертификатов в Linux.
Например, вы используете на своем сайте самоподписанный SSL/TLS сертификат и не хотите, чтобы на клиентах при открытии сайта появлялась ошибка SEC_ERROR_UNKNOWN_ISSUER.
В данном примере мы установим в Linux корневой сертификат Минцифры (Russian Trusted Sub CA), на базе которого сейчас выпускаются сертификаты для сайтов многих компаний и гос-органов РФ.
Или это может быть самоподписанный сертификат с сайта IIS на Windows.
Чтобы проверить, что ваш хост Linux не может проверить (и соответственно не доверяет) SSL сертификату на определенном сайте, выполните команду:
$ curl –I https://www.sberbank.ru
curl: (60) SSL certificate problem: unable to get local issuer certificate. More details here: https://curl.haxx.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.
В данном случае нам нужно добавить корневой центр сертификации этого сайта в список доверенных корневых сертификатов Linux.
Установка корневого сертификата в Linux
Для обновления хранилища доверенных сертификатов в Linux вам нужен файл сертификата в формате PEM с расширением файла .crt. PEM сертификат представляет собой текстовый файл в формате base64, который содержит в начале файла строку —-BEGIN CERTIFICATE—- и в конце ——END CERTIFICATE——.
Если ваш файл сертификата в формате DER, вы можете конвертировать его в PEM формат с помощью утилиты openssl:
$ openssl x509 -in my_trusted_sub_ca.der -inform der -out my_trusted_sub_ca.cer
Сначала рассмотрим, как добавит корневой сертификат вашего CA в доверенные в дистрибутивах Linux на базе DEB (Ubuntu, Debian, Mint, Kali Linux).
Скопируйте файлы ваших сертификаты в хранилище сертификатов в каталог usr/local/share/ca-certificates/:
$ sudo cp my_trusted_sub_ca.crt /usr/local/share/ca-certificates/
$ sudo cp my_trusted_root_ca.crt /usr/local/share/ca-certificates/
Обновите хранилище сертификатов командой:
$ sudo update-ca-certificates -v
$ sudo apt-get install -y ca-certificates
Если сертификаты успешно добавлены, появится сообщение о том, что сертфикат скопирован в /etc/ssl/certs/:
Updating certificates in /etc/ssl/certs… 2 added, 9 removed; done. Running hooks in /etc/ca-certificates/update.d
$ sudo dpkg-reconfigure ca-certificates
Выберите из списка сертификаты, которые нужно добавить в доверенные.
В Linux список доверенных сертификатов содержится в файле /etc/ssl/certs/ca-certificates.crt. Обе рассмотренные выше команды обновят этот файл и добавят в информацию о новых сертификатах.
Вы можете проверить, что ваши сертификаты были добавлены в доверенные с помощью команды:
Укажите часть Common Name вашего сертификата вместо YourCASubj для поиска в хранилище по subject.
Вы можете убедиться, что ваша ОС доверяет сертификату с помощью команду:
$ openssl verify my_trusted_sub_ca.crt
error 20 at 0 depth lookup: unable to get local issuer certificate error my_trusted_sub_ca.crt: verification failed
Теперь проверьте, что на сайте используется доверенный SSL сертификат с помощью curl:
$ curl –I https://www.sberbank.ru
Все ок, сертификат доверенные < HTTPOnly: secure >.
$ sudo mkdir /usr/share/ca-certificates/extra
Чтобы удалить сертификат, удалите ваш crt файл:
$ sudo rm /usr/local/share/ca-certificates/yourcert.crt
$ sudo update-ca-certificates —fresh
В дистрибутивах Linux на базе RPM (CentOS, Oracle, RHEL, Rocky Linux, Fedora) для добавления сертификата в доверенные:
- Установите пакет ca-certificates: # yum install ca-certificates
- Скопируйте файл сертификата в каталог /etc/pki/ca-trust/source/anchors/: # cp mycert.crt /etc/pki/ca-trust/source/anchors/
- Обновите хранилище:
# update-ca-trust force-enable
# update-ca-trust extract
Добавить корневой доверенный сертификат для браузеров Mozilla, Chrome
Теперь все системные утилиты будут доверять сайтам, использующим данный CA. Но это не повлияет на веб браузеры Mozilla Firefox или Google Chrome. Они по-прежнему будут показывать предупреждение о недоверенном сертификате.
Дело в том, что браузеры Firefox, Chromium, Google Chrome, Vivaldi и даже почтовый клиент Mozilla Thunderbird не используют системное хранилище сертификатов Linux. Хранилище сертификатов для этих программ находится в директории пользователя в файле cert8.db (для Mozilla) или cert9.db (для Chromium и Chrome). Для обновления этих хранилищ сертификатов используется утилита certutil из пакета libnss3-tools.
$ sudo apt install libnss3-tools
Теперь выполните следующие скрипты для добавления ваших сертификатов в хранилище через NSS:
#!/bin/bash
certfile=»my_rusted_root_ca.crt»
certname=»My Root CA1″
for certDB in $(find ~/ -name «cert8.db»)
do
certdir=$(dirname $);
certutil -A -n «$» -t «TCu,Cu,Tu» -i $ -d dbm:$
done
for certDB in $(find ~/ -name «cert9.db»)
do
certdir=$(dirname $);
certutil -A -n «$» -t «TCu,Cu,Tu» -i $ -d sql:$
done
После запуска скрипта, сайтам с данным CA будут доверять все браузеры.
Предыдущая статья Следующая статья
Добавление корневого доверенного сертификата в Linux Mint
И другие сервисы связанные со сбербанком, эквайринг перестал работать. Понадбилось установить в системе корневые сертификаты для возобновления работы.
Для скачивания корнегово сертификата нажимаю Advanced…
Ниже появился блок, в нем нажать View Certificate
откроется новое окно с цепочкой сертификатов, переходим на Root CA (в моем случае Russian Trusted Root CA):
в блоке Miscellaneous на против Download нажимаем PEM (cert):
скачанный файл переименовал в Russian_Trusted_Root_CA.crt и скопировал в /usr/local/share/ca-certificates/
sudo cp russian_trusted_root_ca.crt /usr/local/share/ca-certificates/
переходим на Sub CA, скачиваем сертификат
скачанный файл переименовал в Russian_Trusted_Sub_CA.crt и скопировал в /usr/local/share/ca-certificates/
sudo cp russian_trusted_sub_ca.crt /usr/local/share/ca-certificates/
обновить хранилище сертификатов:
sudo update-ca-certificates -v
если команда не найдена, установить пакет:
sudo apt-get install -y ca-certificates
проверить, что сертификат успешно в системе проходит верификацию:
openssl verify Russian_Trusted_Sub_CA.crt Russian_Trusted_Root_CA.crt
при успешной проверке должно вернуть:
Russian_Trusted_Sub_CA.crt: OK Russian_Trusted_Root_CA.crt: OK
В системе сертификаты успешно верифицируются, а для браузеров нужно импортировать в настройках.
Чтобы Crome доверял нужно перейти в настройки по адресу chrome://settings/certificates и импортировать сертификаты нажав на кнопку Import
Чтобы Mozilla Firefox доверял нужно перейти в настройки, в поиске набрать «cert». Нажать на кнопку View Certificates…
В открывшемся окне Certificate Manager прокрутить в самый низ и импортировать сертификаты нажав на кнопку Import