Как правильно установить SSL на мой сервер?

У меня есть поддомен, я хочу установить действительный SSL (возможно, бесплатный SSL). Раньше я заходил на свой сайт через общедоступный адрес моего сервера. Теперь я использую субдомен для доступа к своему сайту. Я хочу добавить действительный SSL на свой сервер, чтобы защитить свой сайт. Я использую XAMPP. Как мне правильно установить SSL, потому что при доступе к моему веб-сайту с помощью HTTPS я получаю NET::ERR_CERT_AUTHORITY_INVALID, и где я могу получить действительный сертификат SSL?


person Community    schedule 16.05.2019    source источник
comment
Какую ОС вы используете? Шаги будут отличаться для разных систем.   -  person Dani Vijay    schedule 16.05.2019
comment
Пожалуйста, поделитесь с нами операционной системой, которую вы используете. Вы также упомянули, что хотите добавить SSL к своему поддомену. Сообщите нам, есть ли в вашем основном домене SSL, и если да, поделитесь с нами конфигурацией Apache.   -  person workaround    schedule 16.05.2019
comment
@workaround Я использую Windows Server 2012, конфигурация находится здесь stackoverflow.com/questions/56141397/   -  person    schedule 16.05.2019
comment
Хорошо, спасибо за дополнительную информацию, попробуйте решение ниже.   -  person workaround    schedule 16.05.2019


Ответы (4)


Самый популярный бесплатный SSL-сертификат, который вы можете получить на сайте letsencrypt.

Вот шаги, которые вы можете сделать, чтобы ваш сертификат работал на локальном компьютере (XAMPP):

  1. Создайте новую папку crt в расположении XAMPP по умолчанию C:\xampp\apache\crt
  2. Вставьте туда 2 файла: cert.conf и make-cert.bat
  3. Теперь отредактируйте cert.conf и запустите make-cert.bat. Измените текст {{DOMAIN}}, используя домен, который мы хотим использовать, в данном случае site.test, и сохраните.

Дважды щелкните make-cert.bat и введите домен site.test при появлении запроса. И просто введите другой вопрос, поскольку мы уже установили значение по умолчанию из cert.conf.

  1. После этого вы увидите созданную папку site.test. В этой папке у нас будут server.crt и server.key. Это наш SSL-сертификат.

Дважды щелкните server.crt, чтобы установить его в Windows, чтобы Windows могла ему доверять.

Затем выберите «Поместить все сертификаты в следующее хранилище», нажмите «Обзор» и выберите «Доверенные корневые центры сертификации».

  1. Отредактируйте файл хоста

5.1 Откройте блокнот от имени администратора.

5.2 Отредактируйте C:\Windows\System32\drivers\etc\hosts (файл не имеет расширения)

5.3 Добавьте это в новую строку:

127.0.0.1 site.test

Это скажет окнам загружать XAMPP, когда мы посещаем http://site.test. Вы можете попробовать, и он покажет панель управления XAMPP. страница.

  1. Добавьте сайт в XAMPP conf.

Нам нужно включить SSL для этого домена и сообщить XAMPP, где мы храним сертификат SSL. Итак, нам нужно отредактировать C:\xampp\apache\conf\extra\httpd-xampp.conf

И добавьте этот код внизу:

    ## site.test
 <VirtualHost *:80>
     DocumentRoot "C:/xampp/htdocs"
     ServerName site.test
     ServerAlias *.site.test
 </VirtualHost>
 <VirtualHost *:443>
     DocumentRoot "C:/xampp/htdocs"
     ServerName site.test
     ServerAlias *.site.test
     SSLEngine on
     SSLCertificateFile "crt/site.test/server.crt"
     SSLCertificateKeyFile "crt/site.test/server.key"
 </VirtualHost>

После этого вам нужно будет перезапустить Apache в XAMPP. Это очень просто, просто откройте панель управления XAMPP и остановите и снова запустите модуль Apache.

  1. Перезапустите браузер
person Roman Bitca    schedule 16.05.2019
comment
Да, должно. - person Roman Bitca; 16.05.2019
comment
Можете ли вы отредактировать шаги с моим поддоменом? Вот мой поддомен: stb.pcsoit.ph - person ; 16.05.2019

Возможно, самым популярным бесплатным провайдером SSL (и тем, который я использую) будет LetsEncrypt.

Шаги по установке будут различаться в зависимости от ОС, например это для Ubuntu

person Dani Vijay    schedule 16.05.2019
comment
Как я могу использовать это, можете ли вы показать мне полные шаги - person ; 16.05.2019
comment
Это зависит от системы, это для Ubuntu: digitalocean.com/community/tutorials/ - person Dani Vijay; 16.05.2019

Вы можете получить бесплатный ssl по этой ссылке [1]. Вам нужно выбрать программное обеспечение, которое вы используете, например Apache, и выбрать, какую операционную систему вы используете, в моем случае я использую Debian 9. Если вы не уверены в своей системе, вам нужно подключиться к серверу по ssh и выполнить команду "$ cat /etc/*release", если вы используете Linux. После того, как вы выбрали правильное программное обеспечение и систему, вам будут даны инструкции о том, как получить SSL.

Вы можете следовать инструкциям здесь [2] по установке SSL.

Надеюсь, эта информация поможет вам.

[1] https://certbot.eff.org/lets-encrypt/debianstretch-apache

[2] https://www.sslshopper.com/apache-server-ssl-installation-instructions.html

person Lherben G    schedule 16.05.2019

Наиболее распространенным решением для бесплатного SSL является LetsEncrypt.

LetsEncrypt предоставляет множество клиентов для большинства ОС. Я рекомендую использовать клиент ACMESharp.

Выполните следующие шаги в Powershell (как описано в официальной документации проекта )

1) Установите ACMESharp

Import-Module ACMESharp

2) Инициализировать хранилище

Initialize-ACMEVault

3) Создайте новую регистрацию ACME, используя электронную почту

New-ACMERegistration -Contacts mailto:[email protected] -AcceptTos

4) Отправьте идентификатор домена

New-ACMEIdentifier -Dns myserver.example.com -Alias dns1

5) Подтвердите право собственности на домен

Выберите метод, подтверждающий, что вы являетесь владельцем домена, я рекомендую HTTP Challenge.

(Complete-ACMEChallenge dns1 -ChallengeType http-01 -Handler manual).Challenge

Если вы не получаете в выходных данных подробности задачи, такие как путь к файлу и содержимое, попробуйте следующее:

(Update-ACMEIdentifier dns1 -ChallengeType http-01).Challenges | Where-Object {$_.Type -eq "http-01"}

Вам, вероятно, придется разрешить доступ к скрытым местоположениям через apache, чтобы задача могла достигать .well-known location. Вы можете использовать что-то вроде следующей конфигурации, в зависимости от ваших пользовательских потребностей (как указано в и этот пост):

<IfModule mod_rewrite.c> 
        RewriteCond %{REQUEST_FILENAME} !.well-known/
        RewriteRule "(^|/)\.(?!well-known)" - [F]
</IfModule>

6) Отправьте ответ на запрос, чтобы подтвердить право собственности на домен (метод HTTP)

Submit-ACMEChallenge dns1 -ChallengeType http-01

Задача не обновляется мгновенно, поэтому попробуйте обновить результаты, пока они не станут действительными.

(Update-ACMEIdentifier dns1 -ChallengeType http-01).Challenges |Where-Object {$_.Type -eq "http-01"}

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

Update-ACMEIdentifier dns1

7) Запросить и получить сертификат

New-ACMECertificate dns1 -Generate -Alias cert1
Submit-ACMECertificate cert1

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

Update-ACMECertificate cert1

Пока все в порядке.

8) Экспортировать открытый и закрытый ключи

Закрытый ключ:

Get-ACMECertificate cert1 -ExportKeyPEM "path\to\cert1.key.pem"

Запрос на подпись сертификата:

 Get-ACMECertificate cert1 -ExportCsrPEM "path\to\cert1.csr.pem"

Позволяет зашифровать общедоступный сертификат:

Get-ACMECertificate cert1 -ExportCertificatePEM "path\to\cert1.crt.pem" -ExportCertificateDER "path\to\cert1.crt"

Публичный сертификат эмитента:

Get-ACMECertificate cert1 -ExportIssuerPEM "path\to\cert1-issuer.crt.pem" -ExportIssuerDER "path\to\cert1-issuer.crt"

В любом случае вам практически не нужно все вышеперечисленное, но закрытый ключ абсолютно необходим, так что храните его в безопасности.

Для получения дополнительной документации посетите репозиторий github проекта.

person workaround    schedule 16.05.2019