Требования
В этом руководстве используется Ubuntu 16.04 как операционная система, в которой работает веб-сервер. Однако те же шаги можно использовать для любых других версий Ubuntu, а также до тех пор, пока нет разницы в настройках. В этом руководстве предполагается, что у пользователя уже установлен веб-сервер, и это Nginx. В качестве клиента SSH используется Putty, а в качестве редактора файлов рекомендуется Nano.
Решение
- Доступ к веб-серверу, созданному на каплях, можно получить по протоколу SSH. Загрузите и установите Putty с официального сайта. Приложение полностью бесплатное.
- После загрузки Putty, продолжайте и загрузите Nano. Назначение Putty - доступ к консоли Linux для ввода команд оболочки, тогда как Nano используется для редактирования внутренних файлов, таких как файл по умолчанию Nginx.
- Запустите Putty и перейдите на вкладку Session.
- В поле Host Name введите IP-адрес капли DigitalOcean, на которой установлен веб-сервер. IP-адрес капель можно найти в https: // cloud.цифровой океан.com / капли. В поле порта введите 22.
- После отправки всех обязательных полей, как показано выше, нажмите ОК, чтобы применить изменения, и войдите в Дроплет. При входе в систему он спросит имя пользователя и пароль капли. И имя пользователя, и пароль отправляются по электронной почте на зарегистрированный адрес электронной почты в DigitalOcean при создании капли.
- В этом руководстве используется Certbot, сторонний инструмент для автоматизации всего процесса получения и обновления цифровых сертификатов. Certbot имеет собственный веб-сайт, на котором можно легко создавать команды, которые будут использоваться. Согласно Certbot, правильные команды для установки Certbot в Ubuntu следующие:. Сначала он обновляет информацию о пакете в локальном репозитории, затем он устанавливает общий пакет свойств программного обеспечения, который предоставляет некоторые полезные сценарии для обработки личных пакетов (PPA), затем он устанавливает certbot, затем снова обновляет локальный репозиторий, а затем, наконец, устанавливает пакет python certbot nginx. Прежде чем переходить к следующему шагу, убедитесь, что все эти пакеты установлены правильно.
$ sudo apt-get install software-properties-common
$ sudo add-apt-репозиторий ppa: certbot / certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
- Перейдите на сайт, на котором был приобретен домен. В этом руководстве Porkbun используется в качестве регистратора домена, а затем добавляется запись A в домен. Тип - запись A, хост пуст, если IP связан с корневым доменом, в противном случае используйте имя поддомена без корневого домена, например, если это nucuta.com, просто используйте www. В качестве ответа введите IP-адрес капли.
- Таким же образом перенаправьте WWW-трафик в корневой домен, как показано ниже. Тип - CNAME, хост - WWW, ответ - nucuta.com »или ваш домен. Этот шаг важен, поскольку он перенаправляет весь трафик www в корневой домен.
- Используйте следующую команду в Putty для доступа к файлу Nginx по умолчанию. Файл по умолчанию по умолчанию использует один серверный блок, в котором расположен основной домен. Настоятельно рекомендуется Nano Editor, так как он довольно удобен в использовании по сравнению с другими.
- В файле по умолчанию перейдите к блоку сервера и перенаправьте HTTP-трафик на HTTP, а в другом блоке сервера, где обрабатывается защищенный трафик, измените имя_сервера на имя домена, например
- Введите следующую команду, чтобы перезапустить веб-сервер Nginx. Всякий раз, когда в файл по умолчанию было внесено изменение, весь сервер Nginx должен быть перезапущен, чтобы новые изменения имели какой-либо эффект.
- По умолчанию брандмауэр блокирует весь трафик, кроме портов 80 и 22. HTTPS использует порт 443; следовательно, он должен быть открыт вручную для доступа к веб-серверу со стороны клиента. Открытие порта зависит от брандмауэра.
В CSF (настроенный межсетевой экран сервера)
- Открывает файл конфигурации CSF, введя следующую команду.
- Добавьте следующие порты в TCP In и Out.
TCP_OUT = "20,21,22,25,53,80,443"- Перезапустите CSF, набрав
csf -r
В USF (несложный брандмауэр)
- Введите следующие две команды, чтобы добавить HTTPS в список исключений. Пакет «Nginx Full» имеет порты HTTP и HTTPS; следовательно, добавление полного пакета позволяет как входящий, так и исходящий трафик.
sudo ufw delete allow 'Nginx HTTP'- Введите следующую команду, чтобы увидеть статус
статус ufw
- Проверьте порт 443 с внешнего веб-сайта, чтобы убедиться, что он открывается наверняка. Если порт открыт, появится сообщение «Порт 443 открыт»
- Теперь используйте Certbot для получения сертификата SSL в домен. Параметр D необходим для указания домена. Let's encrypt выпускает один сертификат как для корневого, так и для субдомена www. Наличие только одной версии для любой версии вызовет предупреждение в браузере, если посетитель получит доступ к другой версии; поэтому важно получить сертификат для обеих версий. sudo certbot --nginx -d nucuta.com -d www.нукута.ком
- Certbot попросит перенаправить весь HTTP-трафик на HTTPS, но это не обязательно, так как это уже было сделано на одном из предыдущих шагов.
- Теперь перейдите на веб-сайт SSL Lab и проверьте качество или любые другие проблемы сертификата и его конфигурацию. https: // www.ssllabs.com / ssltest /
- Если текущая конфигурация недостаточно защищена, перейдите к генератору конфигурации Mozilla SSL и сгенерируйте настройки для своего веб-сервера. https: // mozilla.github.io / на стороне сервера-TLS / ssl-config-generator /. Поскольку здесь используется Nginx, обязательно используйте Nginx в качестве веб-сервера. Предлагает три варианта, средний, старый и современный. Старый вариант делает веб-сайт совместимым практически со всеми браузерами, включая супер-старые браузеры, такие как IE 6, тогда как промежуточный вариант делает его идеальным для обычных пользователей, современный вариант генерирует конфигурацию, необходимую для максимальной безопасности, но, поскольку компромисс веб-сайт не будет работать правильно в старых браузерах. Таким образом, это настоятельно рекомендуется для веб-сайтов, безопасность которых является серьезной проблемой.
- Перейдите на свой веб-сайт и щелкните правой кнопкой мыши значок замка, затем выберите параметр «Сертификат», чтобы увидеть сертификат.
- Если он показывает дату в будущем после TO в опции valid from, это означает, что процесс получения сертификата завершен. Однако важно перенаправить трафик на соответствующую версию домена, например, трафик HTTP и WWW может быть перенаправлен на корневой домен HTTPS, как показано в этом руководстве. Сертификат будет автоматически продлен certbot; следовательно, он всегда доступен владельцу сайта бесплатно.