Как правилно да инсталирам 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 Отворете Notepad като администратор.

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 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 местоположение. Можете да използвате нещо като следната конфигурация, в зависимост от вашите персонализирани нужди (както е споменато в тази публикация също):

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

person workaround    schedule 16.05.2019