Как отправить самоподписанный сертификат клиентам через https с помощью powershell

Как создать самоподписанный сертификат с помощью powershell — cloudsavvy it

Создание самозаверяющего сертификата с помощью Windows PowerShell

Создайте пользовательский сертификат SSL и импортируйте его в основные хранилища Windows Server 2012 R2.

1.Откройте окно PowerShell.

2.Выполните следующую команду:

a.$customcertificate = New-SelfSignedCertificate -DnsName «<FQDN>» -CertStoreLocation «cert:\localmachine\my»
В вышеприведенной команде замените <FQDN> соответствующей версией имени субъекта, отображаемого в ESA Web Console в разделе Components > Invitations > Server access (Компоненты > Приглашения > Доступ к серверу).
Если вы определили несколько имен DNS, например:-DnsName «my.esa.installation.com», «my.authentication.server», «twofactor.auth»
Первая запись (my.esa.installation.com в примере выше) будет использована в поле Subject (Субъект), а последующие записи будут использоваться в поле Subject Alternative Name (Альтернативное имя субъекта) сертификата.

b.$exportpassword = ConvertTo-SecureString -String ‘<password>’ -Force -AsPlainText

В приведенной выше команде замените <password> своим паролем.

c.$certPath = ‘cert:\localMachine\my\’ + $customcertificate.thumbprint

d.Export-PfxCertificate -cert $certPath -FilePath $env:USERPROFILE\Desktop\ESAcustomCertificate.pfx -Password $exportpassword

Последняя команда помещает сертификат ESAcustomCertificate.pfx на рабочий стол.

3. Чтобы открыть диалоговое окно Выполнить, нажмите сочетание клавиш Windows+R.

4.Добавьте оснастку сертификатов:

a.Введите «mmc» и нажмите Enter (Войти).

b.Последовательно щелкните Файл -> Добавить или удалить оснастку.

c.Выберите Сертификаты > Добавить.

d.Выберите Computer Account (Учетная запись компьютера), нажмите кнопку Next (Далее), а затем кнопку Finish (Готово). Нажмите кнопку ОК, чтобы закрыть окно Добавить или удалить оснастку.

5.Импорт соответствующего сертификата:

a.В области слева на консоли MMC разверните раздел Certificates (Local Computer) > Personal (Сертификаты (локальный компьютер) > Персональные), а затем правой кнопкой мыши щелкните Certificates (Сертификаты).

b.Выберите Все задачи > Импорт.

c.В окне мастера импорта нажмите кнопку Далее, затем кнопку Обзор, а после этого в поле со списком расширений файлов выберите пункт «Файлы обмена личной информацией (*.pfx, *.p12)», найдите экспортированный файл сертификата, щелкните Открыть, а затем нажмите кнопку Далее.

d.Введите пароль, используемый во второй команде выше, и нажмите кнопку Далее.

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

6.В области слева на консоли MMC разверните раздел Сертификаты (локальный компьютер) > Доверенные корневые центры сертификации, а затем правой кнопкой мыши щелкните Сертификаты.

7.Выберите Все задачи > Импорт и повторно выполните шаги 6а–6с.

8.Дважды щелкните сертификат в разделе Certificates (Local Computer) > Personal > Certificates (Сертификаты (локальный компьютер) > Персональные > Сертификаты) и убедитесь, что отображается строка You have a private key that corresponds to this certificate (У вас есть закрытый ключ, соответствующий этому сертификату).

Если необходим CRT- и KEY-файл вместо PFX-файла, преобразуйте PFX-файл в CRT- и KEY-файл с помощью OpenSSL или другого предпочтительного способа.

Преобразование PFX в CRT и KEY с помощью OpenSSL

Проверьте, установлена ли лицензия OpenSSL для Windows, и выполните приведенные ниже команды.

openssl pkcs12 -in D:\ESAcustomCertificate.pfx -clcerts -nokeys -out D:\ESAcustomCertificate.crt

Когда отобразится запрос Введите пароль импорта, введите при создании сертификата с помощью Windows PowerShell.

openssl pkcs12 -in D:\ESAcustomCertificate.pfx -nocerts -out D:\ESAcustomCertificate_encrypted.key

В поле Введите пароль PEM задайте новый пароль длиной не менее 4 символов.

openssl rsa -in D:\ESAcustomCertificate_encrypted.key -out D:\ESAcustomCertificate.key

В ответ на запрос введите тот же пароль, который определен в поле Введите пароль PEM.

What the function does

The function I created has been tested on Windows 2008 R2, Windows 2021 and Windows 2021 R2 Preview, although it should work on any computer with PowerShell 2.0 or later (version 1 not tested) that supports certreq.exe. I am using a function instead of a script as I think it can easily be dropped into other scripts without creating further dependencies. To satisfy the requirements I had, the script can be used in the following ways:

  • offline mode to create a certificate request with a single name (Subject only)
  • offline mode to create a certificate request with SANs
  • online mode to create a certificate request with a single name, request a certificate directly from a Windows Enterprise Certificate Authority and import the certificate
  • online mode to create a certificate request with SANs, request a certificate directly from a Windows Enterprise Certificate Authority and import the certificate

The certificates created are exportable and contain the private key.

mkcert

Честно говоря, я не помню, где впервые наткнулся на mkcert. Это могло быть в посте на Reddit, ветке Twitter или случайном ответе StackOverflow, но я так рад, что сделал это.

Итак, что это такое? mkcert — инструмент командной строки, который делает две вещи:

  1. Создаёт локальный центр сертификации на вашем компьютере.
  2. Создаёт самоподписанные ssl-сертификаты для этого центра.

Это означает, что всякий раз, когда ваш браузер загружает разрабатываемый сайт использующий один из созданных им сертификатов для https, он проверяет этот сертификат с помощью фиктивной службы проверки, установленной на вашем компьютере. Таким образом подделывая ваш браузер думает, что всё нормально.

Создание самоподписанного сертификата SSL

Чтобы создать новый самоподписанный сертификат SSL, используйте команду :

Давайте разберем команду и поймем, что означает каждая опция:

  • — Создает новый запрос сертификата и 4096-битный ключ RSA. По умолчанию — 2048 бит.
  • — Создает сертификат X.509.
  • — использовать 265-битный SHA (алгоритм безопасного хеширования).
  • — количество дней, в течение которых сертификат должен быть сертифицирован. 3650 — это десять лет. Вы можете использовать любое положительное целое число.
  • — создает ключ без ключевой фразы.
  • — указывает имя файла, в которое будет записан вновь созданный сертификат. Вы можете указать любое имя файла.
  • — указывает имя файла, в которое будет только что созданный закрытый ключ. Вы можете указать любое имя файла.

Для получения дополнительной информации о параметрах команды посетите страницу документации OpenSSL req.

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

Введите запрошенную информацию и нажмите .

Сертификат и закрытый ключ будут созданы в указанном месте. Используйте команду ls, чтобы убедиться, что файлы были созданы:

Это оно! Вы создали новый самоподписанный сертификат SSL.

Всегда рекомендуется создавать резервную копию нового сертификата и ключа на внешнем хранилище.

Бесплатные Центры сертификации

  • Какой центр сертификации вам нужен? Все зависит от варианта использования сертификата.
    • Частное использование. Если вы планируете использовать сертификат только для личных целей, когда он нужен только вам или ограниченному числу пользователей (например, сотрудникам вашей компании), то вы можете сами стать для себя центром сертификации.
    • Официальное использование. Если вам надо поддерживать официальные контакты с внешними пользователями и почтовыми серверами, вам придется прибегнуть к услугам официального центра сертификации.

Бесплатный сертификат (центр выдачи сертификатов) должен поддерживаться браузером, иначе проще генерировать самому. Главное сертификат правильно создать. При правильном создании самоподписанного сертификата будет выводится только ошибка он невозможности проверить сертификат, например Mozilla Thunderbird почта: «Верификация сертификата не возможна — выдавшая сертификат сторона ненадежна».

От сертификата есть польза только если он выдан доверенным центром сертификации(которые встроены в windows) и если он обеспечен обязательствами (обычно от 10.000 у.е.).
Все остальные сертификаты ничем не отличаются от самоподписанного, который можно сгенерировать самому на любой срок.

Бесплатные центры сертификации SSL:

  • Сервис Regery позволяет БЕСПЛАТНО получить SSL-сертификаты Regery Free SSL и Sectigo со сроком действия 90 дней. Сертификат предназначен для тестирования технической инфраструктуры до покупки коммерческого SSL-сертификата. Выпуск производится в течение НЕСКОЛЬКИХ МИНУТ.
  • Let’s Encrypt — бесплатный центр сертификации SSL
  • SSL Welcome to CAcert.org — аналогично предыдущему. Дают сертификаты на год, но браузеры ничего не знают об этом поставщике и ругаются так же как и на самоподписанные сертификаты.
  • Thawte (основанный, Марком Шаттлвортом и проданный затем компании VeriSign). Предоставляет бесплатные сертификаты для удостоверения электронной почты (но не для SSL). Этот УЦ позаботился о том, чтобы его сертификаты можно было установить в любой системе, кроме того, КС от Thawte предустановлены практически во всех программах, которые работают с цифровыми сертификатами. Если сертификат нужен вам для подписи и шифрования частной почты, бесплатные сертификаты Thawte – лучший выбор. Недостатком Thawte можно назвать то, что при выдаче бесплатных сертификатов не поддерживаются самостоятельно сгенерированные запросы на получение сертификатов, вдобавок Thawte не поддерживает установку сертификатов в Konqueror. Это означает, что для установки бесплатных сертификатов Thawte нужно использовать Firefox или Opera.

Предварительные требования

Для начала у вас должен быть пользователь без прав root с привилегиями . Чтобы создать такую учетную запись пользователя, следуйте указаниям руководства «Начальная настройка сервера с Ubuntu 18.04».

Также вам потребуется установить веб-сервер Apache. Если вы хотите установить на сервере полный комплект LAMP (Linux, Apache, MySQL, PHP), следуйте указаниям обучающего модуля «Установка LAMP в Ubuntu 18.04». Если вы хотите просто установить веб-сервер Apache, пропустите шаги, относящиеся к установке PHP и MySQL.

Когда предварительные требования будут выполнены, переходите к приведенным ниже шагам.

Получаем сертификат от Let’s Encrypt

Итак, я считаю, что вы настроили почтовый сервер по предложенной выше ссылке. Значит, у вас установлен веб сервер Apache, а так же все в порядке с dns записями. Сертификатов мы получим сразу два. Для доменных имен:

  • mail.site.ru — имя почтового сервера, этот сертификат будут использовать postfix и apache
  • webmail.site.ru — домен для web интерфейса почты, будет использовать веб сервер

Для настройки получения сертификатов let’s encrypt и настройки apache, нам нужно будет установить несколько пакетов. Напоминаю, что речь идет про Centos 8. В других системах настройка будет аналогичной, только имена пакетов могут отличаться.

# dnf install certbot python3-certbot-apache mod_ssl

Пакеты эти живут в репозитории epel, так что если он еще не подключен, подключите.

# dnf install epel-release

Дальше нам нужно добавить 2 виртуальных домена в настройки apache. Для этого создаем 2 конфига в директории /etc/httpd/conf.d/.

1. mail.site.ru.conf

<VirtualHost *:443>
 ServerName mail.site.ru
 DocumentRoot /var/www/mail.site.ru/
 <Directory /var/www/mail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/mail.site.ru-error.log
 CustomLog /var/log/httpd/mail.site.ru-access.log combined
</VirtualHost>

<VirtualHost *:80>
 ServerName mail.site.ru
 DocumentRoot /var/www/mail.site.ru/
 <Directory /var/www/mail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/mail.site.ru-error.log
 CustomLog /var/log/httpd/mail.site.ru-access.log combined
</VirtualHost>

2. webmail.site.ru.conf

<VirtualHost *:443>
 ServerName webmail.site.ru
 DocumentRoot /var/www/webmail.site.ru/
 <Directory /var/www/webmail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/webmail.site.ru-error.log
 CustomLog /var/log/httpd/webmail.site.ru-access.log combined
</VirtualHost>

<VirtualHost *:80>
 ServerName webmail.site.ru
 DocumentRoot /var/www/webmail.site.ru/
 <Directory /var/www/webmail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/webmail.site.ru-error.log
 CustomLog /var/log/httpd/webmail.site.ru-access.log combined
</VirtualHost>

По сути конфиги идентичные, только названия доменов разные. Теперь можно проверить конфигурацию apache и перезапустить его.

# apachectl -t
# apachectl reload

Если увидите ошибку:

AH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:
SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty

Просто удалите конфиг /etc/httpd/conf.d/ssl.conf. Он нам не нужен.

Если нет ошибок, то можно запускать certbot и получать сертификаты. Делается это очень просто.

# certbot --apache

Если все прошло без ошибок, то вы увидите в директории /etc/letsencrypt/live две папки с сертификатами для каждого из доменов.

Так же certbot автоматически добавит в конфигурации виртуальных хостов apache несколько дополнительных параметров.

<VirtualHost *:443>
 ServerName webmail.site.ru
 DocumentRoot /var/www/webmail.site.ru/
 <Directory /var/www/webmail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/webmail.site.ru-error.log
 CustomLog /var/log/httpd/webmail.site.ru-access.log combined
 SSLCertificateFile /etc/letsencrypt/live/mail.site.ru/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/mail.site.ru/privkey.pem
 Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

<VirtualHost *:80>
 ServerName webmail.site.ru
 DocumentRoot /var/www/webmail.site.ru/
 <Directory /var/www/webmail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/webmail.site.ru-error.log
 CustomLog /var/log/httpd/webmail.site.ru-access.log combined
 RewriteEngine on
 RewriteCond %{SERVER_NAME} =mail.site.ru
 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} 
</VirtualHost>

В этот виртуальный хост установите веб почту, если вам она нужна.

Подписание SSL-сертификатов

Получить подписанный сертификат, когда имеется закрытый ключ и запрос на подпись можно несколькими способами: воспользоваться услугой авторитетных центров сертификации, отправив им запрос (CSR-файл) и получив в ответ готовый сертификат *.crt. Либо можно сделать сертификат самоподписанным. Т. е. подписать его тем же ключом, который использовался при создании файла CSR. Для этого следует выполнить команду:

$ openssl x509 -signkey server.key -in server.csr -req -days 365 -out server.crt

Здесь опция -days указывает количество дней, в течение которых выпускаемый сертификат server.crt будет действителен. В данном случае на протяжении одного года.
Также можно создать самоподписанный сертификат из имеющегося закрытого ключа без использования CSR-файла. Но в этом случае нужно вводить информацию CSR-запроса:

$ openssl req -key server.key -new -x509 -days 365 -out server.crt

Параметр -x509 задаёт формат генерируемого сертификата. Он является самым распространённым и используется в большинстве случаев. Опция -new позволяет запрашивать информацию для запроса у пользователя.

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

Поскольку соединения с доменами, обслуживаемыми такими сертификатами по-умолчанию блокируются.

Предварительные требования

Для прохождения этого обучающего модуля вам потребуется следующее:

  • Доступ к серверу Ubuntu 20.04 с пользователем без прав root с привилегиями sudo. Наше «Руководство по начальной настройке сервера Ubuntu 20.04» рассказывает о том, как создать такого пользователя.
  • Также вам потребуется установить Apache. Вы можете установить Apache с помощью . Для начала обновите локальный индекс пакетов, чтобы отразить последние обновления:

Затем установите пакет :

Если вы используете брандмауэр , откройте порты и :

После выполнения этих шагов убедитесь, что вы вошли в систему в качестве пользователя без прав root, и продолжите работу с этим руководством.

Шаг 4 — Активация изменений в Apache

Мы внесли изменения и настроили брандмауэр, и теперь можем включить в Apache модули SSL и заголовков, активировать наш виртуальный хост SSL и перезапустить Apache.

Мы можем активровать , модуль Apache SSL, и модуль , необходимый для некоторых настроек нашего сниппета SSL, с помощью команды :

Теперь мы можем активировать виртуальный хост SSL с помощью команды :

Также нам нужно будет активировать файл для считывания заданных значений:

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

Первая строка — это сообщение о том, что директива не задана глобально. Если вы хотите избавиться от этого сообщения, вы можете задать для доменное имя вашего сервера или IP-адрес в каталоге . Это необязательно, потому что данное сообщение не наносит никакого вреда.

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

Проблема с краем

Это не совсем о самозаверяющих сертификатах, но все же относится ко всему процессу: После выполнения вышеуказанных действий Edge может не отображать содержимое при открытии . Причиной является характерная особенность сетевого управления Windows 10 для современных приложений, называемая “изоляция сети”.

Чтобы решить эту проблему, откройте командную строку с правами администратора и введите следующую команду один раз:

Дополнительную информацию об Edge и сетевой изоляции можно найти здесь: https://blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/

Процесс установки ssl сертификата

Процесс установки сертификата осуществляется при помощи следующих шагов.

Скопируйте выданный вам сертификат в файл, расположенный на вашем сервере Apache

После выпуска SSL-сертификата, на почтовый адрес, который вы задали, поступит электронное письмо, которое будет содержать в себе ваш сертификат. Файл с сертификатом будет называться domain.crt. Открыв файл с SSL сертификатом в обычном текстовом редакторе, вы увидите следующее (примерно):

 ——BEGIN CERTIFICATE——ASb-SdGSIk3DqvPAqCAMIACAQSxALBgkqddhgrtkiG9w0BBwGg&KLPmowggHXAhUb7egest5u0M63v1Z2A/kFghj5CSqGSIb3DQBAs klMF8xCzAnbijNByhTMd54vSA(…….)E cFEGjgrHJgrA eRP6XraWw8iiguUtfgrrcJgg4P6XVS4l39 l5aCEGGbauLP5W6K99orhIhgQrlX2 KeDi xBG2coigehIGFeQS/16S36ITcluHGY5EA &A5ujbhgrYHS——END CERTIFICATE——

Скопируйте данный сертификат туда же (в ту же директорию), где лежит ваш частный (приватный) ключ, назовем этот каталог /etc/ssl/crt/. В нашей ситуации приватный ключ — это private.key. Публичным ключом будет выступать domain.crt.

Задайте корневой и промежуточный сертификат

Очень важный пункт. Чтобы заслужить доверие браузеров и различных мобильных устройств к вашему SSL-сертификату, вам нужно будет задать сертификаты корневых и промежуточных ЦС (центров сертификации). Такие сертификаты обычно лежат вместе с файлом Вашего главного сертификата. Для Apache их надо объединить в ca_bundle.

Чтобы ссылка на данный файл была корректной, следует произвести следующее в необходимом разделе Virtual Host для вашего веб-сайта:

Создаем шаблон RDP сертификата в центре сертификации (CA)

Попробуем использовать для защиты RDP подключений доверенный SSL/TLS сертификат, выданный корпоративным центром сертификации. С помощью такого сертификата пользователь может выполнить проверку подлинности RDP сервера при подключении. Предположим, что у вас в домене уже развернут корпоративной центр сертификации (Microsoft Certificate Authority), в этом случае вы можете настроить автоматическую выдачу и подключение сертификатов всем компьютерам и серверам Windows в домене.

Н на вашем CA нужно создать новый тип шаблона сертификата для RDP/RDS серверов.

  1. Запустите консоль Certificate Authority и перейдите в секцию Certificate Templates;
  2. Сделайте копию шаблона сертификата Computer (Certificate Templates -> Manage -> Computer -> Duplicate);
  3. На вкладке General укажите имя нового шаблона сертификата – RDPTemplate. Убедитесь, что значение поля Template Name полностью совпадает с Template display name;
  4. На вкладке Compatibility укажите минимальную версию клиентов в вашем домене (например, Windows Server 2008 R2 для CA и Windows 7 для клиентов). Тем самым будут использоваться более стойкие алгоритмы шифрования;
  5. Теперь на вкладке Extensions в политике приложений (Application policy) нужно ограничить область использования такого сертификата только для Remote Desktop Authentication (укажите следующий object identifier — 1.3.6.1.4.1.311.54.1.2). Нажмите Add -> New, создайте новую политику и выберите ее;
  6. В настройках шаблона сертификата (Application Policies Extension) удалите все политики кроме Remote Desktop Authentication;
  7. Чтобы использовать данный шаблон RDP сертификатов на контролерах домена, откройте вкладку Security, добавьте группу Domain Controllers и включите для нее опцию Enroll и Autoenroll;
  8. Сохраните шаблон сертификата;
  9. Теперь в оснастке Certificate Authority, щёлкните по папке Certificate Templates, выберите New ->Certificate Template to Issue -> выберите созданный шаблон RDPTemplate.

Предупреждение о самоподписанном сертификате RDP

По умолчанию в Windows для защиты RDP сессии генерируется самоподписанный

сертификат. В результате при первом подключении к RDP/RDS серверу через клиента mstsc.exe, у пользователя появляется предупреждение:

Чтобы продолжить установление RDP подключении пользователь должен нажать кнопку Да. Чтобы RDP предупреждение не появлялось каждый раз, можно включить опцию “Больше не выводить запрос о подключениях к этому компьютеру».

При этом отпечаток RDP сертификата сохраняется на клиенте в параметре CertHash в ветке реестра с историей RDP подключений (HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\). Если вы скрыли уведомление о невозможности проверить подлинность RDP сервера, чтобы сбросить настройки, удалите ключ с отпечатком сертификата из реестра.

Шаг 5 — Тестирование шифрования

Теперь мы готовы протестировать наш сервер SSL.

Откройте браузер и введите и доменное имя или IP-адрес вашего сервера в адресную панель:

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

Такое предупреждение нормально, и его следует ожидать. Сертификат нам нужен только для шифрования, а не для подтверждения подлинности нашего хоста третьей стороной. Нажмите «Дополнительно», а затем нажмите на указанную ссылку, чтобы перейти к своему хосту:

Теперь должен открыться ваш сайт. Если вы посмотрите в адресную строку браузера, вы увидите символ замка со знаком «x». В данном случае это означает, что сертификат не удается проверить. Ваше соединение все равно шифруется.

Если вы настроили Apache для перенаправления HTTP на HTTPS, вы можете проверить правильность перенаправления функций:

Если при этом появляется такой же значок, перенаправление работает правильно.

Бесплатные сертификаты

Самоподписанные сертификаты

Самоподписанный (самоизданный, самозаверенный, self-signed) сертификат — тот, который вы сами создали для своего домена или IP-адреса. Многим владельцам сайтов может показаться, что это идеальный вариант:

  • Бесплатно.
  • Доступно. Такой SSL-сертификат может создать любой владелец домена.
  • Без обращения к поставщикам услуг. Не нужно ждать ответа от центра сертификации.
  • Быстро. Но только если вы знаете, что делать и как пользоваться специальными программами или библиотеками. Например, для Windows можно воспользоваться криптографическим хранилищем OpenSSL или консолью PowerShell. 
  • Можно создать сколько угодно сертификатов.

Вам уже кажется, что выбор сделан и читать дальше нет смысла? Всё не совсем так.

Минусы

  • Нет надёжной защиты. Браузеры не доверяют таким сертификатам, потому что заверяют их не специальные центры, а неизвестный им человек или юрлицо. 
  • Есть риск потерять данные. Причём как пользователей, так и ваши, с сайта компании.
  • Отпугивает посетителей сайта. Пользователи, заходя на страницу с самоподписанным сертификатом, видят предупреждение о небезопасности: в результате количество посетителей сайта, готовых совершать на нем действия, снижается. Мало ли что — вдруг сайт мошеннический.
  • Возможные ошибки в оформлении и отображении сертификата, если он был создан неправильно.

Если вам нужно провести тесты на внутренних ресурсах компании, а заморачиваться с доверенными сертификатами не хочется, можно сделать самоизданный SSL-сертификат. Но и здесь вы рискуете: если у вас крупная компания, понадобится много труда и времени, чтобы наладить работу и объяснить всем сотрудникам, что делать с этим страшным предупреждением об опасности. В целом же, на практике использовать такой сертификат точно не стоит.

Бесплатные доверенные сертификаты

Такие SSL-сертификаты можно оформить довольно быстро. Часто ими пользуются стартапы, чтобы понять, что вообще такое SSL и как это работает. Бывают только одного вида — DV SSL (Domain Validation). Это сертификаты, удостоверяющие доменное имя. 

Плюсы

  • Быстро. Такой сертификат могут выдать вам уже через несколько минут. Всё потому, что тип такого сертификата — DV (Domain Validation) SSL и для его оформления нужно только подтверждение владения доменом, как и у платных DV.
  • Просто получать и устанавливать.
  • Отлично подойдёт для теста с возможностью сэкономить в первые несколько месяцев.
  • Известные компании-поставщики. Те же Let’s Encrypt на рынке с 2012 года и поддерживаются Google, Facebook и другими крупными корпорациями.

Минусы

  • Небольшой срок действия. Например, сертификаты Let`s Encrypt необходимо перевыпускать каждые 3 месяца.
  • Сложности с продлением. Хостеры автоматически продлевают некоторые бесплатные сертификаты. Но здесь бывают проблемы. Перед выпуском сертификационный центр обращается к сайту за специальным файлом. Иногда он в системе не обнаруживается: не было места на диске и файл не записался, во время проверки почему-то закрылся доступ к сайту и пр. Итог один — сертификат не обновляется, а вы даже не узнаете об этом, если не решите вдруг проверить срок действия вручную.
  • Отсутствие поддержки. Для корректной работы SSL-сертификата важна грамотная полноценная поддержка (по телефону, по email, в чатах). Она недоступна для бесплатных SSL. На официальных сайтах удостоверяющих центров, как правило, размещены ответы на часто задаваемые вопросы, которые в основном описывают общие случаи и могут быть бесполезны для решения конкретной проблемы. Также есть неофициальная информация на тематических форумах, но среди неё ещё надо найти нужную.
  • Есть вероятность не заметить, что сертификат не работает. Как мы писали выше, посмотреть сроки действия сертификата можно вручную. Есть и другой способ: проверять даты с помощью специального скрипта, который не так просто создать. Поддержки нет. Если не проверять сроки, можно пропустить время продления, и сертификаты будут аннулированы. В безопасности сайта появятся дыры, посетители, увидев уведомление о ненадёжности сайта, станут покидать сайт и трафик снизится.

В 2017 году кредитное бюро Equifax сообщило о масштабном взломе: хакеры украли данные 143 млн человек — почти половины населения США. Это произошло отчасти из-за истечения срока действия сертификата, который был неактивным в течение 19 месяцев.

Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: