Nginx-da sertifikatni qanday o'rnatish mumkin? Chop etish

  • 2

SSL sertifikatini o'rnatish va HTTPS ga o'tish brauzeringiz va serveringiz o'rtasidagi aloqalarni xavfsizroq qilishning ajoyib usuli hisoblanadi. Foydalanuvchi ro'yxatdan o'tishni talab qiladigan barcha saytlar uchun SSL ulanishi tavsiya etiladi. Ko'pgina eskirgan ko'rsatmalar va qo'llanmalar aytganidan farqli o'laroq, sertifikat serverga sezilarli yuk qo'shmaydi va oson va arzon tarzda chiqarilishi mumkin.

Nginx-da SSL sertifikatini qanday o'rnatish kerak

Nginx-ga SSL-ni o'rnatish uchun siz quyidagi amallarni bajarishingiz kerak bo'ladi:

SSL sertifikatiga buyurtma berishda ko'rsatilgan elektron pochta manzilingizga sertifikat bilan arxivni olishingiz kerak. Arxiv odatda ildiz, oraliq va domen sertifikatlarini saqlaydi. Agar sizda allaqachon bundle.crt fayli bo'lsa, to'g'ridan-to'g'ri 4-bosqichga o'tishingiz mumkin. Aks holda, uchta sertifikat faylini bitta faylga birlashtirishingiz kerak bo'ladi. Ushbu jarayon 2 va 3-bandlarda batafsil tavsiflangan.
Sizda uchta fayl bo'lishi kerak: comodo_root.crt (ildiz sertifikati), comodo_intermediate.crt (oraliq sertifikat) va your_domen.crt. Ularni .key fayli bilan birga serveringizdagi ularni saqlamoqchi bo'lgan tasodifiy katalogga ko'chiring.
Siz ildiz sertifikat faylini (comodo_root.crt), oraliq sertifikat faylini (comodo_intermediate.crt) va vash_domen.crt sertifikat faylini bitta crt fayliga birlashtirishingiz kerak bo'ladi. Bu quyidagi buyruq yordamida amalga oshiriladi:
cat comodo_root.crt comodo_intermediate.crt your_domen.crt > bundle.crt

Ba'zi hollarda Comodo arxivni yuboradi, unda oraliq sertifikat va ildiz sertifikat fayllari allaqachon bitta faylga birlashtirilgan. Agar shunday bo'lsa, uni quyidagi buyruq yordamida sertifikat fayli bilan birlashtirishingiz kerak bo'ladi:

cat comodo-bundle.crt your_domain.crt > bundle.crt

Keling, Nginx-ni sozlashga o'tamiz.

Himoya qilmoqchi bo'lgan sayt uchun Nginx virtual xost faylini oching. Agar siz saytingizga ham xavfsiz, ham xavfsiz ulanish orqali kirishni istasangiz, har bir ulanish turi uchun server modulini qo'shishingiz kerak bo'ladi. Xavfsiz ulanish uchun mavjud modulning nusxasini yarating va uni asosiy kod ostiga qo'ying. Keyin unga quyidagi qatorlarni qo'shing (qalin bilan):
server {

tinglash 443;

ssl yoqilgan;

ssl_certificate /etc/ssl/bundle.crt;

ssl_certificate_key /etc/ssl/your_domain.key;

server_name yourdomain.com;

access_log /var/log/nginx/nginx.vhost.access.log;

error_log /var/log/nginx/nginx.vhost.error.log;

Manzil/{

root /home/www/public_html/your_domain/public/;

indeks index.html;

}

}

Ssl_certificate biz avval yaratgan crt fayliga o'rnatilganligiga ishonch hosil qiling.

Agar siz yuqoridagi havolada keltirilgan generatordan foydalansangiz, konfiguratsiya faylingiz shunday ko'rinishi mumkin (bu erda siz oldinga maxfiylik uchun dhparam.pem ni yaratganingizni nazarda tutamiz. Agar yo'q bo'lsa, bu openssl dhparam -out /etc/ buyrug'i bilan amalga oshiriladi. pki/nginx/dhparam.pem 4096):

server {

tinglang 80;

server_name name.ru www.name.ru;

qaytish 301 https://name.ru$request_uri;

}

# 301 yo'naltirishni qo'shing

server {

443 ssl http2 ni tinglang;

server_name www.name.ru;

# bu yerda sertifikatlarni ko'rsatishni unutmang

ssl_certificate /etc/nginx/ssl/name.ru/bundle.crt;

ssl_certificate_key /etc/nginx/ssl/name.ru/name.key;

qaytish 301 https://name.ru$request_uri;

}

server {

# http2 protokolini qo'shing

443 ssl http2 ni tinglang;

server_name name.ru;

access_log off;

#access_log /var/log/nginx/name.ru.access.log;

error_log /var/log/nginx/name.ru.error.log;

ssl yoqilgan;

# OCSP-shtapelni yoqish. Bu nima va u nima uchun kerak, siz bizning tez-tez so'raladigan savollarimizda topishingiz mumkin.

ssl_stapling yoqilgan;

ssl_stapling_verify yoqilgan;

# bizning sertifikatlarimiz

ssl_certificate /etc/nginx/ssl/name.ru/bundle.crt;

ssl_certificate_key /etc/nginx/ssl/name.ru/name_private.key;

ssl_dhparam /etc/nginx/ssl/name.ru/dhparam.pem;

# seans o'rnating

ssl_session_tickets o'chirilgan;

ssl_session_timeout 1 kun;

ssl_session_cache umumiy: SSL: 50m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256-AES128-GCM-SHA256:HEECSHACAD4-HEESSH56- RSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA2182-SHA25- SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA25:SHA- 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 yoqilgan;

add_header Strict-Transport-Security max-age=31536000;

# maʼlumotlarni proksi-server

Manzil/{

# proksi parametrlari

proxy_send_timeout 600;

proxy_read_timeout 600

;

proksi_bufer_sizi 128k;

proxy_buferlar 4 256k;

proxy_busy_buffers_size 256k;

proxy_set_header Xost      $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $sxema;

proxy_set_header HTTPS HA;

# Proksi-server uchun maqsadli saytning IP-manzili

proxy_pass http://192.168.1.108;

}

}

Shuningdek, konfiguratsiyaga quyidagilarni qo'shishingiz kerak bo'ladi (bu erda hamma narsa ishlatiladigan CMSga bog'liq):
joy ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; fastcgi_params o'z ichiga oladi; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; fastcgi_param REMOTE_ADDR $http_x_real_ip; fastcgi_param HTTPS yoqilgan; fastcgi_param HTTP_HTTPS yoqilgan; fastcgi_param REQUEST_SCHEME https; fastcgi_param SERVER_PORT 443; }
Nginx-ni qayta ishga tushiring. Faqat quyidagi buyruqni bajaring:
nginx xizmatini qayta ishga tushiring


Bu javob sizga yordam berdimi?

«Orqaga