डेबियन 9 पर Nginx में TLS 1.3 को कैसे सक्षम करें

परिचय

टीएलएस 1.3 आरएफसी 8446 में प्रस्तावित मानक के रूप में 2018 में प्रकाशित ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस) प्रोटोकॉल का एक संस्करण है । यह अपने पूर्ववर्तियों पर सुरक्षा और प्रदर्शन सुधार प्रदान करता है।

यह मार्गदर्शिका बताती है कि डेबियन 9 पर Nginx वेब सर्वर का उपयोग करके टीएलएस 1.3 को कैसे सक्षम किया जाए।

आवश्यकताएँ

  • Nginx संस्करण 1.13.0या अधिक से अधिक।
  • ओपनएसएसएल संस्करण 1.1.1या अधिक से अधिक।
  • Vultr Cloud Compute (VC2) का उदाहरण डेबियन 9 x64 (स्ट्रेच) चल रहा है।
  • एक मान्य डोमेन नाम और आपके डोमेन के लिए ठीक से कॉन्फ़िगर A/ AAAA/ CNAMEDNS रिकॉर्ड।
  • एक वैध टीएलएस प्रमाण पत्र। लेट्स एनक्रिप्ट से हमें एक मिलेगा।

शुरू करने से पहले

डेबियन संस्करण की जाँच करें।

lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)

सुनिश्चित करें कि आपका सिस्टम पुराना है।

apt update && apt upgrade -y

आवश्यक पैकेज स्थापित करें।

apt install -y git unzip curl sudo socat build-essential

sudoपहुँच के साथ एक नया गैर-रूट उपयोगकर्ता खाता बनाएँ और उसमें स्विच करें।

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

नोट: अपने उपयोगकर्ता नाम के साथ बदलें johndoe

टाइमजोन सेट करें।

sudo dpkg-reconfigure tzdata

Acme.sh क्लाइंट इंस्टॉल करें और लेट्स एनक्रिप्ट से टीएलएस प्रमाणपत्र प्राप्त करें

डाउनलोड करें और Acme.sh स्थापित करें

sudo mkdir /etc/letsencrypt
sudo git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~
source ~/.bashrc

संस्करण की जाँच करें।

/etc/letsencrypt/acme.sh --version
# v2.8.2

अपने डोमेन के लिए RSA और ECDSA प्रमाणपत्र प्राप्त करें।

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256

नोट: अपने डोमेन नाम के साथ बदलें example.com

पिछले आदेशों को चलाने के बाद, आपके प्रमाणपत्र और कुंजियाँ निम्नलिखित स्थानों पर पहुँच योग्य हैं:

  • RSA :/etc/letsencrypt/example.com
  • ECC / ECDSA :/etc/letsencrypt/example.com_ecc

स्रोत से Nginx बनाएँ

Nginx ने संस्करण 1.13.0 में TLS 1.3 के लिए समर्थन जोड़ा। अधिकांश लिनक्स वितरण पर, डेबियन 9 सहित, नेग्नेक्स को पुराने ओपनएसएसएल संस्करण के साथ बनाया गया है, जो टीएलएस 1.3 का समर्थन नहीं करता है। नतीजतन, हमें ओपनएसएसएल 1.1.1 रिलीज से जुड़े अपने स्वयं के कस्टम नेग्नेक्स बिल्ड की आवश्यकता है, जिसमें टीएलएस 1.3 के लिए समर्थन शामिल है।

Nginx स्रोत कोड का नवीनतम मेनलाइन संस्करण डाउनलोड करें और इसे निकालें।

wget https://nginx.org/download/nginx-1.17.0.tar.gz && tar zxvf nginx-1.17.0.tar.gz

OpenSSL 1.1.1c स्रोत कोड डाउनलोड करें और इसे निकालें।

# OpenSSL version 1.1.1c
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar xzvf openssl-1.1.1c.tar.gz

सभी .tar.gzफ़ाइलों को हटा दें , क्योंकि अब उनकी आवश्यकता नहीं है।

rm -rf *.tar.gz

Nginx स्रोत निर्देशिका दर्ज करें।

cd ~/nginx-1.17.0

कॉन्फ़िगर करें, संकलित करें, और Nginx स्थापित करें। सादगी के लिए, हम केवल आवश्यक मॉड्यूल संकलित करेंगे जो टीएलएस 1.3 के लिए आवश्यक हैं। यदि आपको एक पूर्ण Nginx बिल्ड की आवश्यकता है, तो आप इस Vultr गाइड को Nginx संकलन के बारे में पढ़ सकते हैं ।

./configure --prefix=/etc/nginx \
            --sbin-path=/usr/sbin/nginx \
            --modules-path=/usr/lib/nginx/modules \
            --conf-path=/etc/nginx/nginx.conf \
            --error-log-path=/var/log/nginx/error.log \
            --pid-path=/var/run/nginx.pid \
            --lock-path=/var/run/nginx.lock \
            --user=nginx \
            --group=nginx \
            --build=Debian \
            --builddir=nginx-1.17.0 \
            --http-log-path=/var/log/nginx/access.log \
            --http-client-body-temp-path=/var/cache/nginx/client_temp \
            --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
            --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
            --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
            --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
            --with-compat \
            --with-http_ssl_module \
            --with-http_v2_module \
            --with-openssl=../openssl-1.1.1c \
            --with-openssl-opt=no-nextprotoneg \
            --without-http_rewrite_module \
            --without-http_gzip_module

make
sudo make install

एक Nginx सिस्टम समूह और उपयोगकर्ता बनाएँ।

sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx

सिमलिंक /usr/lib/nginx/modulesके लिए /etc/nginx/modules। उत्तरार्द्ध नेग्नेक्स मॉड्यूल के लिए एक मानक स्थान है।

sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules

Nginx कैश निर्देशिका बनाएं और उचित अनुमतियाँ सेट करें।

sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp
sudo chmod 700 /var/cache/nginx/*
sudo chown nginx:root /var/cache/nginx/*

Nginx संस्करण की जाँच करें।

sudo nginx -V

# nginx version: nginx/1.17.0 (Debian)
# built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
# built with OpenSSL 1.1.1c  28 May 2019
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx . . .
# . . .

एक Nginx systemd यूनिट फ़ाइल बनाएँ।

sudo vim /etc/systemd/system/nginx.service

फ़ाइल को निम्न कॉन्फ़िगरेशन से आबाद करें।

[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

Nginx को प्रारंभ और सक्षम करें।

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

बनाएँ conf.d, sites-availableऔर sites-enabledमें निर्देशिका /etc/nginx

sudo mkdir /etc/nginx/{conf.d,sites-available,sites-enabled}

sudo vim /etc/nginx/nginx.confसमापन से ठीक पहले, फ़ाइल के अंत में निम्नलिखित दो निर्देश चलाएं और जोड़ें }

    . . .
    . . .
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;
}

फ़ाइल और साथ बाहर निकलने को बचाने :+ W+ Q

TLS 1.3 के लिए Nginx कॉन्फ़िगर करें

अब जब हमने Nginx का सफलतापूर्वक निर्माण कर लिया है, हम अपने सर्वर पर TLS 1.3 का उपयोग शुरू करने के लिए इसे कॉन्फ़िगर करने के लिए तैयार हैं।

sudo vim /etc/nginx/conf.d/example.com.confफ़ाइल को निम्न कॉन्फ़िगरेशन से चलाएँ और पॉप्युलेट करें।

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
  ssl_prefer_server_ciphers on;
}

फ़ाइल और साथ बाहर निकलने को बचाने :+ W+ Q

निर्देश के नए TLSv1.3पैरामीटर पर ध्यान दें ssl_protocols। टीएलएस 1.3 को सक्षम करने के लिए यह पैरामीटर आवश्यक है।

कॉन्फ़िगरेशन की जाँच करें।

sudo nginx -t

रीलोडेड नेग्नेक्स।

sudo systemctl reload nginx.service

TLS 1.3 को सत्यापित करने के लिए, आप ब्राउज़र देव टूल या एसएसएल लैब्स सेवा का उपयोग कर सकते हैं। नीचे दिए गए स्क्रीनशॉट क्रोम के सुरक्षा टैब को दर्शाते हैं जो दर्शाता है कि टीएलएस 1.3 काम कर रहा है।

डेबियन 9 पर Nginx में TLS 1.3 को कैसे सक्षम करें

डेबियन 9 पर Nginx में TLS 1.3 को कैसे सक्षम करें

बधाई हो! आपने अपने डेबियन 9 सर्वर पर टीएलएस 1.3 को सफलतापूर्वक सक्षम किया है।

एक टिप्पणी छोड़ें

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ