предисловие
HTTPS (полное название: протокол передачи гипертекста через защищенный уровень сокетов или безопасный протокол передачи гипертекста, безопасный протокол передачи гипертекста) — это защищенный канал HTTP, просто безопасная версия HTTP. Другими словами, уровень SSL добавляется в HTTP, а основой безопасности HTTPS является SSL, поэтому подробное содержание шифрования требует SSL. Это схема URI (схема абстрактного идентификатора) с синтаксисом, аналогичным схеме http:. Для безопасной передачи данных HTTP. URL-адрес https: указывает, что он использует HTTP, но HTTPS имеет порт по умолчанию, отличный от HTTP, и уровень шифрования/аутентификации (между HTTP и TCP). Система была первоначально разработана Netscape и встроена в ее браузер Netscape Navigator для обеспечения аутентификации и зашифрованной связи. В настоящее время он широко используется для чувствительных к безопасности сообщений во всемирной паутине, таких как платежи по транзакциям.
1. Зачем использовать HTTPS
Протокол HTTP отправляет содержимое в виде открытого текста и не обеспечивает никакого шифрования данных. Если злоумышленник перехватит сообщение о передаче между веб-браузером и веб-сервером, он сможет напрямую прочитать содержащуюся в нем информацию.Поэтому протокол HTTP не подходит для передача некоторых данных.Конфиденциальная информация, такая как номера кредитных карт, пароли и т.д.
Чтобы устранить этот дефект протокола HTTP, необходимо использовать другой протокол: протокол передачи гипертекста Secure Sockets Layer HTTPS. Для безопасности передачи данных HTTPS добавляет протокол SSL к HTTP.SSL использует сертификаты для проверки подлинности сервера и шифрования связи между браузером и сервером.
Протокол HTTPS может предотвратить захват и подделку сетевых данных во время передачи, а также может использоваться для борьбы с захватом оператора связи и размещением рекламы. Кроме того, при посещении веб-сайта, поддерживающего протокол HTTPS, такие браузеры, как Google, будут отображать в адресной строке логотип безопасности, что сделает веб-сайт более безопасным для пользователей и повысит доверие клиентов.
Для развертывания HTTPS необходимо сначала приобрести SSL-сертификат, цена которого колеблется от нескольких тысяч до десятков тысяч юаней в год. Есть также некоторые поставщики услуг, которые предоставляют бесплатные SSL-сертификаты.Вот два способа подать заявку на бесплатный SSL-сертификат и развернуть HTTPS.
2. Зашифруем бесплатный сертификат
Let's Encrypts — общедоступный бесплатный SSL-проект, который постепенно распространяется и используется большинством пользователей, инициирован Mozilla, Cisco, Akamai, IdenTrust, EFF и др. Основная цель — способствовать переходу сайтов с HTTP на HTTPS.Все больше и больше пользователей присоединяются и спонсируют поддержку.
Далее описан процесс установки сертификата Let's encrypt в Ubuntu.
1. Установите certbot (для автоматического обновления сертификатов)
# 添加安装源
sudo add-apt-repository ppa:certbot/certbot
# 更新apt安装源
sudo apt-get update
# 安装
sudo apt-get install python-certbot-apache
2. Установите Lets encrypt
# 安装 letsencrypt
sudo apt-get install letsencrypt
# 生成证书
letsencrypt certonly --agree-tos --email youname@163.com -d www.domain.com
После запуска команды апелляции файлы, связанные с сертификатом, будут созданы в папке /etc/letsencrypt.
3. Настройте nginx
Добавьте файл конфигурации сайта website.conf в папку /etc/nginx/conf.d/ со следующим содержимым (замените www.domain.com вашим фактическим доменным именем):
server {
listen 80;
# listen [::]:80;
server_name www.domain.com;
  # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
  return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
# listen [::]:443 ssl http2;
server_name www.domain.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /etc/letsencrypt/live/www.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.domain.com/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
# ssl_dhparam /etc/ssl/certs/dhparam.pem;
# intermediate configuration. tweak to your needs.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
## verify chain of trust of OCSP response using Root CA and Intermediate certs
# ssl_trusted_certificate /etc/letsencrypt/live/www.gabin.top/root_ca_cert_plus_intermediates;
# resolver 8.8.8.8 8.8.4.4 valid=300s;
# resolver_timeout 5s;
}
4. Перезагрузите конфигурацию nginx
Выполните следующую команду:
nginx -s reload
5. Добавьте запланированную задачу обновления
Сертификат Lets Encrypt по умолчанию действителен в течение трех месяцев и должен регулярно обновляться. Редактирование запланированных задач:
crontab -e
Добавьте запланированные задачи:
# 每天夜里凌晨 2 点续签:
* 2 * * * service nginx stop & letsencrypt renew & service nginx start
3. Бесплатный сертификат Qiniuyun
Многие поставщики облачных услуг, такие как Alibaba Cloud, Tencent Cloud и Qiniu Cloud, предоставляют бесплатные SSL-сертификаты.Большинство из этих сертификатов действительны в течение одного года и должны быть обновлены вручную по истечении срока их действия. Вот пример Qiniuyun.
1. Подать заявку на сертификат
Посетите https://portal.qiniu.com/certificate/apply и выберите покупку бесплатного сертификата:
После заполнения информации и успешной подачи заявки вы можете просмотреть соответствующие сертификаты в списке сертификатов:2. Загрузите сертификат
Нажмите [Подробности] - [Просмотр сертификата] - [Загрузить сертификат], чтобы загрузить файл сертификата:
Загрузите сертификат на сервер после завершения загрузки.3. Изменить конфигурацию nginx
Метод установки этого сертификата аналогичен способу Lets encrypt, просто замените путь, по которому находится файл сертификата после загрузки, поэтому я не буду вдаваться в подробности.
-
Если у вас есть какие-либо вопросы, вы можете подписаться на общедоступную учетную запись WeChat «Сообщество полного стека», чтобы задавать вопросы, а также вы можете получить больше необходимых для веб-мастеров и разработчиков технологий переднего и заднего плана, эксплуатации и обслуживания.
-
19 юаней США VPS, место для сайта, исходный код сайта: www.xumaoyun.com