Быстро используйте Let's Encrypt, чтобы открыть https для личного веб-сайта

HTTPS

задний план

Зачем использовать https?

  • https позволяет эффективно избежать перехвата DNS недобросовестными операторами и может значительно улучшить качество веб-сайта.
  • Использование https уже является общей тенденцией, и по воле людей iOS даже обязывает разработчиков использовать https.

зачем использоватьLet's Encrypt?

  • Для отдельных разработчиков https-сертификаты слишком дороги, обычно тысячи лет.
  • Let's EncryptБесплатный и открытый исходный код, несомненно, является хорошим выбором.

В этой статье будет записьблог голубых глаз(https://blog.eyeblue.cn) Весь процесс создания https. Есть много применений в Интернетеlet's encryptКод для создания сертификата или используйте Certbot для создания сертификата, но я не думаю, что удобно и быстро напрямую использовать https://freessl.org/ для создания сертификата.

Получить сертификат

1. Заполните доменное имя

Откройте сайт https://freessl.org/ и введите собственное доменное имя, вы увидите картинку ниже. Здесь мы заполняемblog.eyeblue.cnи поставьте галочку нижеLet's Encrypt, затем нажмите кнопку **"Создать бесплатный SSL-сертификат"**.

1.png

2. Заполните адрес электронной почты, выберите тип сертификата, тип проверки и метод генерации CSR.
  • Заполните свой адрес электронной почты

  • Марку сертификата можно выбрать толькоLet's Encrypt

  • Выбор типа сертификатаECC. Здесь в основном нужно выбрать алгоритм цифровой подписи, для обычных пользователей использовать по умолчаниюECCВот и все. Если вам нужно выбрать в соответствии с вашей конкретной ситуацией, как правило, есть следующая основа выбора:

(1) Алгоритм подписи RSA подходит для сценариев приложений, в которых частота операций Verify высока, а частота операций Sign низкая. Например, одним из таких сценариев является управление доступом на основе возможностей в распределенных системах. (2) Алгоритм подписи ECDSA подходит для сценариев приложений, в которых частота операций Sign и Verify аналогична. Например, установление защищенного канала точка-точка.

  • Тип проверки для использованияDNSПуть.

На самом деле тип проверки используется для определения того, являетесь ли вы владельцем доменного имени.Подтвердить можно двумя способами: 1. ДНС. CA (Центр сертификации цифровых сертификатов) определит ваше право собственности на доменное имя, запросив запись DNS TXT, поэтому вам необходимо добавить сгенерированное имя записи TXT и значение записи к доменному имени на платформе управления доменными именами. 2. Документы. ЦС подтвердит, что вы являетесь владельцем измененного доменного имени, посетив определенный URL-адрес. Поэтому вам необходимо скачать файл проверки на лайки и загрузить его на свой сервер.

  • Варианты создания CSR浏览器生成. Все распространенные браузеры поддерживаютWeb Cryptography, напрямую используйте значение по умолчанию浏览器生成Наиболее удобно.

На картинке ниже показано, что я заполнил. После заполнения нажмите кнопку **"Click Generate"**.

2.png

3. Выполните проверку DNS

3.1 После нажатия кнопки на шаге 2 появится следующий рисунок:

3.png
3.2 В настоящее время вам нужно только перейти в консоль разрешения доменных имен, чтобы добавить запись разрешения TXT. Мое доменное имя находится в облаке Alibaba, поэтому детали разрешения показаны на следующем рисунке:
3-1.png
После завершения синтаксического анализа нажмите кнопку **"Нажмите для подтверждения"** в 3.1.

4. Загрузите сертификат

После нажатия кнопки на шаге 3 появится кнопка для загрузки файла сертификата. В это время нажмите **"Загрузить сертификат"**, чтобы получить файл сертификата.full_chain.pemи файл закрытого ключаprivate.key.

4.png

настроить nginx

Конфигурация nginx следующая:

server{
		# 监听443端口
        listen 443 ssl;
		# 域名,如果有多个空格隔开
        server_name blog.eyeblue.cn;

		# 启用ssl
        ssl on;
		# 证书文件的放置路径。证书文件即通过上文《获取证书》的方式获得。
        ssl_certificate /data/security/letsencrypt/blogeyebluecn/full_chain.pem;
        # 私钥文件的放置路径。
        ssl_certificate_key /data/security/letsencrypt/blogeyebluecn/private.key;

		# 蓝眼博客的服务运行在端口6020
        location / {
                proxy_pass http://127.0.0.1:6020;
                proxy_set_header host $host;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass_request_headers      on;
                client_max_body_size  8m;
        }

}

#对于通过http来访问蓝眼博客的请求,我们默认让其跳转到https. 这样保持了http访问的兼容性。
server {
        listen      80;
        server_name    blog.eyeblue.cn;
        rewrite ^(.*)$ https://blog.eyeblue.cn$1 permanent;
}

Не забудьте изменить файл конфигурации

service nginx restart

проверять

открыть веб-страницуhttps://blog.eyeblue.cn, вы можете увидеть маленький зеленый замок в адресной строке, который доказывает, что https был успешно открыт. как вы печатаетеhttp://blog.eyeblue.cnавтоматически перейдет кhttpsдля обеспечения совместимости.

5.png

поддерживать

Let's EncryptСертификат действителен только в течение трех месяцев, что требует от нас периодического продления сертификата.https://freessl.org/Вы можете помочь нам управлять сертификатами.После регистрации и входа в систему вы можете увидеть наш интерфейс управления сертификатами следующим образом:

6.png

Справочная статья

Как Nginx настраивает сертификаты

Выбор RSA и ECC

Оригинальный текст был опубликован в блоге Blue Eye: https://blog.eyeblue.cn/home/article/9f580b3f-5679-4a9d-be6f-4d9f0dd417af.