ВНЕЗАПНО вам потребовался HTTPS. Мало ли зачем. Например, карточные платежи на сайте принимать. Как это устроить? Вот чек-лист:
1. Домен есть? Если проект на стадии разработки, то нет, покупайте;
2. A-запись и NS-записи для домена прописаны?
3. CSR - код сгенерирован? Бывают хостеры, которые такую услугу оказывают только в ручном режиме. Значит, пишите в техпом;
4. SSL-сертификат для доменного имени куплен? В России хорошая репутация у NIC.RU, например;
5. Теперь зайдите на сервер по SSH и отдайте команду openssl genrsa -out private.key 2048
6. Создайте CSR-запрос командой openssl req -new -sha256 -key private.key -out csr.csr Для этого используйте регистрационные данные домена, те, что отдает Whois. Иначе будут нестыковки;
7. Скопируйте по SSH код CSR командой cat csr.csr и передайте его компании, у которой покупаете SSL-сертификат;
8. Для подтверждения владения доменом создайте почту вида admin@our-domain.com и пришлите с нее подтверждение для покупки SSL-сертификата;
9. Создайте bundled PEM-сертификат. В письме от поставщика SSL должен быть сертификат в PEM-формате. Откройте sublime text, вставьте туда этот сертификат, добавьте туда промежуточный сертификат, который скачайте по ссылке https://search.thawte.com/support/ssl-digital-certificates/index?page=content&actp=CROSSLINK&id=AR1372
10. Сохраните полученный текст в файл по адресу /etc/nginx/certificate_bundled.crt.
11. По этому же пути скопируйте приватный ключ командой mv private.key /etc/nginx/private.key
12. Настройте файл конфигурации nginx.conf по адресу /etc/nginx/nginx.conf
Для этого в секцию http добавьте код:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_stapling on;
resolver 8.8.8.8;
13. Затем найдите файл example_ssl.conf по адресу /etc/nginx/conf.d/example_ssl.conf
В секции server добавьте код:
server {
listen 443 ssl;
server_name www.site.ru;
root /var/www/html/web/; #не забываем здесь тоже указать свой root, если он какой-то специфический как у меня
index index.php index.html;
set $yii_bootstrap "index.php";
# здесь немного конфига для yii, для тех кто его использует
location / {
# Define the index
index index.html $yii_bootstrap;
try_files $uri $uri/ /$yii_bootstrap?$args;
}
# Any of the protected directories, we will ignore. There is no reason
# to share out the protected web spaces
location ~ ^/(commands|components|config|controllers|models|vendor|views) {
deny all;
}
#avoid processing of calls to unexisting static files by yii
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
.......
keepalive_timeout 60;
ssl_certificate certificate_bundled.crt;
ssl_certificate_key private.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH";
add_header Strict-Transport-Security 'max-age=604800';
.......
location ~ \.php$ {
.......
fastcgi_param HTTPS on; # Для php-fpm
.......
}
}
14. Отключите пароль приватного ключа командой openssl rsa -in /etc/nginx/private.key -out /etc/nginx/private.key
15. Перезагрузите сервер командой nginx -s reload
Готово!
Удачи вам! Опытом веб-программирования поделилась с вами Веб-студия "АКРИТ". Разработка и продвижение сайтов на CMS «1С-Битрикс». Мы реализуем полный цикл работ - от разработки логотипа и фирменного стиля будущей компании, до ее продвижения на рынок, используя максимально эффективные современные технологии.
Назад в раздел
1. Домен есть? Если проект на стадии разработки, то нет, покупайте;
2. A-запись и NS-записи для домена прописаны?
3. CSR - код сгенерирован? Бывают хостеры, которые такую услугу оказывают только в ручном режиме. Значит, пишите в техпом;
4. SSL-сертификат для доменного имени куплен? В России хорошая репутация у NIC.RU, например;
5. Теперь зайдите на сервер по SSH и отдайте команду openssl genrsa -out private.key 2048
6. Создайте CSR-запрос командой openssl req -new -sha256 -key private.key -out csr.csr Для этого используйте регистрационные данные домена, те, что отдает Whois. Иначе будут нестыковки;
7. Скопируйте по SSH код CSR командой cat csr.csr и передайте его компании, у которой покупаете SSL-сертификат;
8. Для подтверждения владения доменом создайте почту вида admin@our-domain.com и пришлите с нее подтверждение для покупки SSL-сертификата;
9. Создайте bundled PEM-сертификат. В письме от поставщика SSL должен быть сертификат в PEM-формате. Откройте sublime text, вставьте туда этот сертификат, добавьте туда промежуточный сертификат, который скачайте по ссылке https://search.thawte.com/support/ssl-digital-certificates/index?page=content&actp=CROSSLINK&id=AR1372
10. Сохраните полученный текст в файл по адресу /etc/nginx/certificate_bundled.crt.
11. По этому же пути скопируйте приватный ключ командой mv private.key /etc/nginx/private.key
12. Настройте файл конфигурации nginx.conf по адресу /etc/nginx/nginx.conf
Для этого в секцию http добавьте код:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_stapling on;
resolver 8.8.8.8;
13. Затем найдите файл example_ssl.conf по адресу /etc/nginx/conf.d/example_ssl.conf
В секции server добавьте код:
server {
listen 443 ssl;
server_name www.site.ru;
root /var/www/html/web/; #не забываем здесь тоже указать свой root, если он какой-то специфический как у меня
index index.php index.html;
set $yii_bootstrap "index.php";
# здесь немного конфига для yii, для тех кто его использует
location / {
# Define the index
index index.html $yii_bootstrap;
try_files $uri $uri/ /$yii_bootstrap?$args;
}
# Any of the protected directories, we will ignore. There is no reason
# to share out the protected web spaces
location ~ ^/(commands|components|config|controllers|models|vendor|views) {
deny all;
}
#avoid processing of calls to unexisting static files by yii
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
.......
keepalive_timeout 60;
ssl_certificate certificate_bundled.crt;
ssl_certificate_key private.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH";
add_header Strict-Transport-Security 'max-age=604800';
.......
location ~ \.php$ {
.......
fastcgi_param HTTPS on; # Для php-fpm
.......
}
}
14. Отключите пароль приватного ключа командой openssl rsa -in /etc/nginx/private.key -out /etc/nginx/private.key
15. Перезагрузите сервер командой nginx -s reload
Готово!
Удачи вам! Опытом веб-программирования поделилась с вами Веб-студия "АКРИТ". Разработка и продвижение сайтов на CMS «1С-Битрикс». Мы реализуем полный цикл работ - от разработки логотипа и фирменного стиля будущей компании, до ее продвижения на рынок, используя максимально эффективные современные технологии.
Назад в раздел
Подписаться на новые материалы раздела: