Имам поддомейн, който искам да инсталирам валиден SSL (евентуално безплатен SSL). Използвах достъп до уебсайта си чрез публичния адрес на моя сървър. Сега използвам поддомейн за достъп до уебсайта си. Искам да добавя валиден SSL към моя сървър, за да защитя уебсайта си. Използвам XAMPP. Как мога да инсталирам правилно SSL, защото когато влизам в уебсайта си чрез HTTPS, получавам NET::ERR_CERT_AUTHORITY_INVALID и къде мога да получа валиден SSL сертификат?
Как правилно да инсталирам SSL на моя сървър?
Отговори (4)
Най-популярният безплатен SSL сертификат, който можете да получите от letsencrypt.
След това ето стъпките, чрез които можете да накарате вашия сертификат да работи на машина с локален хост (XAMPP):
- Създайте нова папка crt, в XAMPP местоположение по подразбиране C:\xampp\apache\crt
- Поставете там 2 файла: cert.conf и make-cert.bat
- Сега редактирайте cert.conf и изпълнете make-cert.bat Променете текста {{DOMAIN}}, като използвате домейна, който искаме да използваме, в този случай site.test и запазете.
Щракнете два пъти върху make-cert.bat и въведете домейна site.test, когато бъдете подканени. И просто въведете друг въпрос, тъй като вече сме задали по подразбиране от cert.conf.
- След това ще видите създадена папка site.test. В тази папка ще имаме server.crt и server.key. Това е нашият SSL сертификат.
Щракнете два пъти върху server.crt, за да го инсталирате в Windows, така че Windows да може да му се довери.
След това изберете „Поставете всички сертификати в следното хранилище“ и щракнете върху Преглед и изберете Доверени главни сертифициращи органи.
- Редактирайте своя хост файл
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 страница.
- Добавете сайта в 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 модула.
- Рестартирайте браузъра си
Вероятно най-популярният безплатен SSL доставчик (и този, който използвам) ще бъде LetsEncrypt.
Стъпките за инсталиране ще варират в зависимост от операционната система, като това за Ubuntu
Можете да получите безплатен 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
Най-разпространеното решение за безплатен 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 на проекта.