Как правильно установить SSL на мой сервер? - PullRequest
0 голосов
/ 16 мая 2019

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

Ответы [ 4 ]

0 голосов
/ 16 мая 2019

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

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

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

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

Import-Module ACMESharp

2) Инициализируйте хранилище

Initialize-ACMEVault

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

New-ACMERegistration -Contacts mailto:somebody@example.org -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, так что вызов может достичь. хорошо известного местоположения.Вы можете использовать что-то вроде следующего конфига, в зависимости от ваших пользовательских потребностей (как упомянуто в в этом посте ):

<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 repo проекта.

0 голосов
/ 16 мая 2019

Самый популярный бесплатный сертификат 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 (в файле нет ext)

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

127.0.0.1 site.test

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

  1. Добавить сайт в конф. XAMPP.

Нам нужно включить 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. Перезагрузите браузер
0 голосов
/ 16 мая 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

0 голосов
/ 16 мая 2019

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

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

...