نحوه میزبانی وب سایت با استفاده از Cloudflare و Nginx در اوبونتو 18.04
Cloudflare سرویسی است که بین بازدید کننده و سرور مجازی مالک وب سایت قرار دارد و به عنوان یک پروکسی معکوس برای وب سایت ها عمل می کند. Cloudflare یک شبکه انتقال محتوا (CDN) ، و همچنین خدمات سرور مجازی کاهش نام دامنه توزیع شده DDoS را فراهم می کند.
Nginx یک سرور مجازی وب مشهور است که مسئول میزبانی برخی از بزرگترین و پر ترافیک ترین سایتهای اینترنت است. معمولا سازمانها وب سایتها را با Nginx ارائه کرده و از Cloudflare به عنوان ارائه دهنده CDN و DNS استفاده می کنند.
در این آموزش ، وب سایت خود را که توسط Nginx با گواهی Origin CA از Cloudflare ارائه میشود ایمن میکنید و سپس Nginx را برای استفاده از درخواستهای معتبر پیکربندی میکنید. مزایای استفاده از این ستاپ این است که شما از CDN Cloudflare و وضوح سریع DNS بهره می برید و در عین حال اطمینان حاصل می کنید که همه اتصالات از Cloudflare عبور می کنند. این مانع از رسیدن هرگونه درخواست مخرب به سرور مجازی شما می شود.
پیش نیازها
برای تکمیل این آموزش به موارد زیر نیاز دارید:
⦁ یک سرور مجازی Ubuntu 18.04 با پیروی از راهنمای ستاپ اولیه سرور مجازی Ubuntu 18.04 ، از جمله یک کاربر sudo غیر ریشه و فایروال راه اندازی شده.
⦁ Nginx بر روی سرور مجازی شما نصب شده باشد. می توانید راهنمای ما در مورد نحوه نصب Nginx را در اوبنتو 18.04 دنبال کنید.
⦁ یک حساب Cloudflare
⦁ یک دامنه ثبت شده به حساب Cloudflare شما اضافه شده باشد که به سرور مجازی Nginx شما اشاره کند. راهنمای ما در مورد چگونگی کاهش حملات DDoS علیه وب سایت خود با Cloudflare می تواند در انجام این کار به شما کمک کند. مقدمه ما در مورد اصطلاحات DNS ، مؤلفه ها و مفاهیم نیز می تواند مفید باشد.
⦁ سرور مجازی Nginx Block برای دامنه شما پیکربندی شده باشد ، که می توانید با دنبال کردن مرحله 5 نحوه نصب Nginx در اوبونتو 18.04 ، آن را انجام دهید.
مرحله 1 – تولید گواهی Origin CA TLS
Cloudflare Origin CA به شما امکان می دهد تا یک گواهی TLS رایگان امضا شده توسط Cloudflare برای نصب بر روی سرور مجازی Nginx خود تولید کنید. با استفاده از گواهی TLS تولید شده Cloudflare می توانید ارتباط بین سرور مجازی های Cloudflare و سرور مجازی Nginx خود را تضمین کنید.
برای تولید گواهی نامه با Origin CA ، در یک مرورگر وب به حساب Cloudflare خود وارد شوید. دامنه مورد نظر برای تأمین امنیت را انتخاب کرده و به بخش SSL / TLS داشبورد Cloudflare خود بروید. از آنجا به تب Origin Server بروید و بر روی دکمه Create Certificate کلیک کنید:
گزینه پیش فرض Let Cloudflare generate a private key and a CSR را انتخاب کنید.
بر روی Next کلیک کنید و گفتگویی با Origin Certificate و Private key را مشاهده خواهید کرد. شما باید گواهی مبدا و کلید خصوصی را از Cloudflare به سرور مجازی خود منتقل کنید. به دلایل امنیتی ، اطلاعات Private Key مجدداً نمایش داده نمی شود ، بنابراین قبل از کلیک بر روی Ok ، کلید سرور مجازی خود را کپی کنید.
شما از دیرکتوری / etc / ssl در سرور مجازی برای نگه داشتن گواهی مبدا و فایل های کلید خصوصی استفاده خواهید کرد. این پوشه در حال حاضر در سرور مجازی وجود دارد.
ابتدا محتویات Certificate Origin نمایش داده شده در کادر گفتگو در مرورگر خود را کپی کنید.
سپس ، در سرور مجازی خود ، /etc/ssl/cert.pem را در ویرایشگر متن مورد نظر خود باز کنید:
⦁ $ sudo nano /etc/ssl/cert.pem
⦁
محتوای گواهی را در فایل اضافه کنید. سپس ذخیره کنید و از ویرایشگر خارج شوید.
سپس به مرورگر خود بازگردید و محتویات کلید خصوصی را کپی کنید. فایل /etc/ssl/key.pem را برای ویرایش باز کنید:
⦁ $ sudo nano /etc/ssl/key.pem
⦁
کلید خصوصی را درون فایل قرار دهید ، فایل را ذخیره کنید و از ویرایشگر خارج شوید.
توجه: گاهی اوقات ، هنگامی که گواهی و کلید را از داشبورد Cloudflare کپی می کنید و آن را در فایل های مربوطه روی سرور مجازی پیست میکنید ، خطوط خالی درج می شود. Nginx چنین گواهینامه ها و کلیدها را نامعتبر میداند ، بنابراین اطمینان حاصل کنید که هیچ خط خالی در فایل های شما وجود نداشته باشد.
هشدار: گواهی Origin CA Cloudflare فقط به Cloudflare اعتماد میکند و بنابراین فقط باید توسط سرور مجازیهای مبدأ استفاده شود که به طور فعال به Cloudflare متصل هستند. اگر در هر لحظه Cloudflare را متوقف یا غیرفعال کنید ، گواهی Origin CA شما خطای گواهی نامعتبر را به همراه خواهد داشت.
اکنون که فایلهای کلید و مجوز را در سرور مجازی خود کپی کرده اید ، برای استفاده از آنها باید پیکربندی Nginx را به روز کنید.
مرحله 2 – نصب گواهی Origin CA در Nginx
در بخش قبلی ، با استفاده از داشبورد Cloudflare یک گواهی مبدأ و کلید خصوصی ایجاد کرده و فایل ها را در سرور مجازی خود ذخیره کردید. اکنون پیکربندی Nginx را برای استفاده از گواهی مبدا و کلید خصوصی برای اطمینان از اتصال بین سرور مجازیهای Cloudflare و سرور مجازی خود ، پیکربندی Nginx را به روز خواهید کرد.
ابتدا مطمئن شوید UFW ترافیک HTTPS را امکان پذیر می کند. Nginx Full را فعال کنید ، که پورت 80 (HTTP) و پورت 443 (HTTPS) را باز می کند:
⦁ $ sudo ufw allow ‘Nginx Full’
⦁
اکنون UFW را مجدد لود کنید:
⦁ $ sudo ufw reload
⦁
در آخر ، بررسی کنید که قوانین جدید شما مجاز باشند یا UFW فعال باشد:
⦁ $ sudo ufw status
⦁
خروجی مانند این را مشاهده خواهید کرد:
Output
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
اکنون آماده تنظیم بلوک سرور مجازی Nginx خود هستید. Nginx در حین نصب بلوک سرور مجازی پیش فرض ایجاد می کند. اگر هنوز وجود دارد ، آن را حذف کنید ، زیرا قبلاً یک بلوک سرور مجازی اختصاصی برای دامنه خود پیکربندی کرده اید:
⦁ $ sudo rm /etc/nginx/sites-enabled/default
⦁
سپس ، فایل پیکربندی Nginx را برای دامنه خود باز کنید:
⦁ $ sudo nano /etc/nginx/sites-available/your_domain
⦁
فایل باید به صورت زیر باشد:
/etc/nginx/sites-available/your_domain
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
برای تنظیم موارد زیر فایل پیکربندی Nginx را اصلاح می کنید:
• به پورت 80 گوش دهید و کلیه درخواست ها را برای استفاده از https تغییر دهید.
• به پورت443 گوش داده و از گواهی مبدا و کلید خصوصی اضافه شده در قسمت قبلی استفاده کنید.
فایل را تغییر دهید تا به شکل زیر باشد:
/etc/nginx/sites-available/your_domain
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
return 302 https://$server_name$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
server_name your_domain www.your_domain;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}
فایل را ذخیره کرده و از ویرایشگر خارج شوید.
در مرحله بعد ، اطمینان حاصل کنید که هیچ خطای نحوی در هیچ یک از فایل های تنظیمات Nginx شما وجود ندارد:
⦁ $sudo nginx -t
⦁
اگر مشکلی پیدا نکردید ، Nginx را دوباره فعال کنید تا تغییرات خود را فعال کنید:
⦁ $ sudo systemctl restart nginx
⦁
حال به بخش SSL / TLS داشبورد Cloudflare بروید ، به تب Overview بروید و حالت رمزگذاری SSL / TLS را به حالت کامل (دقیق) تغییر دهید. این به Cloudflare اطلاع می دهد تا همیشه ارتباط بین Cloudflare و سرور مجازی Nginx منشاء شما را رمزگذاری کند.
اکنون به وب سایت خود در https: // your_domain مراجعه کنید تا صحت تنظیم آن را تأیید کنید. صفحه اصلی خود را مشاهده خواهید کرد و مرورگر گزارش می دهد که سایت امن است.
در قسمت بعد ، شما Authenticated Origin Pulls را تأیید می کنید که سرور مجازی مبدا شما در واقع با Cloudflare ارتباط برقرار می کند و نه برخی دیگر از سرور مجازی ها. با این کار ، Nginx پیکربندی می شود که تنها درخواست هایی را که از گواهی کلاینت معتبر از Cloudflare استفاده می کنند ، بپذیرد. کلیه درخواستهایی که از Cloudflare عبور نکرده اند رد می شوند.
مرحله 3 – تنظیم Authenticated Origin Pulls
گواهی Origin CA به Cloudflare کمک می کند تا تایید کند که در حال گفتگو با سرور مجازی درست است. در این مرحله از تأیید هویت کلاینت TLS برای تأیید صحت سرور مجازی Nginx که با Cloudflare در حال گفتگو است ، استفاده می کند.
در یک ارتباط TLS تأیید شده توسط کلاینت ، هر دو طرف یک گواهی برای تأیید ارائه می دهند. سرور مجازی مبدا پیکربندی شده است که فقط درخواستهایی را قبول کند که از گواهی کلاینت معتبر از Cloudflare استفاده می کنند. درخواست هایی که از Cloudflare عبور نکرده اند رد می شوند زیرا گواهی Cloudflare را ندارند. این بدان معنی است که حمله گران مخرب نمی توانند اقدامات امنیتی Cloudflare را دور بزنند و مستقیماً به سرور مجازی Nginx شما متصل شوند.
Cloudflare گواهینامه های امضا شده توسط CA با گواهی زیر را ارائه می دهد:
—–BEGIN CERTIFICATE—–
MIIGCjCCA/KgAwIBAgIIV5G6lVbCLmEwDQYJKoZIhvcNAQENBQAwgZAxCzAJBgNV
BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmln
aW4gUHVsbDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZv
cm5pYTEjMCEGA1UEAxMab3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwHhcNMTkx
MDEwMTg0NTAwWhcNMjkxMTAxMTcwMDAwWjCBkDELMAkGA1UEBhMCVVMxGTAXBgNV
BAoTEENsb3VkRmxhcmUsIEluYy4xFDASBgNVBAsTC09yaWdpbiBQdWxsMRYwFAYD
VQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMSMwIQYDVQQD
ExpvcmlnaW4tcHVsbC5jbG91ZGZsYXJlLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAN2y2zojYfl0bKfhp0AJBFeV+jQqbCw3sHmvEPwLmqDLqynI
42tZXR5y914ZB9ZrwbL/K5O46exd/LujJnV2b3dzcx5rtiQzso0xzljqbnbQT20e
ihx/WrF4OkZKydZzsdaJsWAPuplDH5P7J82q3re88jQdgE5hqjqFZ3clCG7lxoBw
hLaazm3NJJlUfzdk97ouRvnFGAuXd5cQVx8jYOOeU60sWqmMe4QHdOvpqB91bJoY
QSKVFjUgHeTpN8tNpKJfb9LIn3pun3bC9NKNHtRKMNX3Kl/sAPq7q/AlndvA2Kw3
Dkum2mHQUGdzVHqcOgea9BGjLK2h7SuX93zTWL02u799dr6Xkrad/WShHchfjjRn
aL35niJUDr02YJtPgxWObsrfOU63B8juLUphW/4BOjjJyAG5l9j1//aUGEi/sEe5
lqVv0P78QrxoxR+MMXiJwQab5FB8TG/ac6mRHgF9CmkX90uaRh+OC07XjTdfSKGR
PpM9hB2ZhLol/nf8qmoLdoD5HvODZuKu2+muKeVHXgw2/A6wM7OwrinxZiyBk5Hh
CvaADH7PZpU6z/zv5NU5HSvXiKtCzFuDu4/Zfi34RfHXeCUfHAb4KfNRXJwMsxUa
+4ZpSAX2G6RnGU5meuXpU5/V+DQJp/e69XyyY6RXDoMywaEFlIlXBqjRRA2pAgMB
AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
DgQWBBRDWUsraYuA4REzalfNVzjann3F6zAfBgNVHSMEGDAWgBRDWUsraYuA4REz
alfNVzjann3F6zANBgkqhkiG9w0BAQ0FAAOCAgEAkQ+T9nqcSlAuW/90DeYmQOW1
QhqOor5psBEGvxbNGV2hdLJY8h6QUq48BCevcMChg/L1CkznBNI40i3/6heDn3IS
zVEwXKf34pPFCACWVMZxbQjkNRTiH8iRur9EsaNQ5oXCPJkhwg2+IFyoPAAYURoX
VcI9SCDUa45clmYHJ/XYwV1icGVI8/9b2JUqklnOTa5tugwIUi5sTfipNcJXHhgz
6BKYDl0/UP0lLKbsUETXeTGDiDpxZYIgbcFrRDDkHC6BSvdWVEiH5b9mH2BON60z
0O0j8EEKTwi9jnafVtZQXP/D8yoVowdFDjXcKkOPF/1gIh9qrFR6GdoPVgB3SkLc
5ulBqZaCHm563jsvWb/kXJnlFxW+1bsO9BDD6DweBcGdNurgmH625wBXksSdD7y/
fakk8DagjbjKShYlPEFOAqEcliwjF45eabL0t27MJV61O/jHzHL3dknXeE4BDa2j
bA+JbyJeUMtU7KMsxvx82RmhqBEJJDBCJ3scVptvhDMRrtqDBW5JShxoAOcpFQGm
iYWicn46nPDjgTU0bX1ZPpTpryXbvciVL5RkVBuyX2ntcOLDPlZWgxZCBp96x07F
AnOzKgZk4RzZPNAxCXERVxajn/FLcOhglVAKo5H0ac+AitlQ0ip55D2/mf8o72tM
fVQ6VpyjEXdiIXWUq/o=
—–END CERTIFICATE—–
همچنین می توانید گواهی را مستقیماً از Cloudflare در این لینک دانلود کنید.
این گواهی را کپی کنید.
سپس فایل /etc/ssl/cloudflare.crt را برای نگه داشتن گواهی Cloudflare ایجاد کنید:
⦁ $ sudo nano /etc/ssl/cloudflare.crt
⦁
گواهی را به فایل اضافه کنید. سپس فایل را ذخیره کرده و از ویرایشگر خارج شوید.
اکنون پیکربندی Nginx خود را به روز کنید تا از TLS Authenticated Origin Pulls استفاده کنید. فایل پیکربندی را برای دامنه خود باز کنید:
⦁ $ sudo nano /etc/nginx/sites-available/your_domain
⦁
دستورالعملهای ssl_client_certificate و ssl_verify_client را همانطور که در مثال زیر نشان داده شده است اضافه کنید:
/etc/nginx/sites-available/your_domain
. . .
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
ssl_client_certificate /etc/ssl/cloudflare.crt;
ssl_verify_client on;
. . .
فایل را ذخیره کرده و از ویرایشگر خارج شوید.
سپس ، Nginx را آزمایش کنید تا مطمئن شوید که هیچ خطای نحوی در پیکربندی Nginx شما وجود ندارد:
⦁ $ sudo nginx -t
⦁
اگر مشکلی پیدا نشد ، Nginx را ریستارت کنید تا تغییرات خود را اعمال کنید:
⦁ $ sudo systemctl restart nginx
⦁
در آخر ، برای فعال کردن Authenticated Pulls ، بخش SSL / TLS را در داشبورد Cloudflare باز کنید ، به تب Origin Server بروید و گزینه Authenticated Origin Pulls را تغییر دهید.
اکنون به وب سایت خود در https: // your_domain مراجعه کنید تا صحت تنظیم آن را تأیید کنید. مانند قبل ، صفحه اصلی خود را نمایش داده خواهید کرد.
برای تأیید اینکه سرور مجازی شما فقط درخواستهای امضا شده توسط CA Cloudflare را قبول خواهد کرد ، گزینه Authenticated Origin Pulls را انتخاب کنید تا غیرفعال شود و سپس وب سایت خود را دوباره لود کنید. باید پیام خطای زیر را دریافت کنید:
اگر CA Cloudflare درخواستی را امضا نکند ، سرور مجازی مبدا شما خطایی را ایجاد می کند.
توجه: بیشتر مرورگرها درخواستها را ذخیره می کنند ، بنابراین برای دیدن تغییر فوق می توانید از حالت جستجوی Incognito/Private در مرورگر خود استفاده کنید. برای جلوگیری از عدم دسترسی به درخواست Cloudflare در هنگام تنظیم وب سایت ، به مرور کلی در داشبورد Cloudflare بروید و حالت توسعه را تغییر دهید.
اکنون که می دانید درست کار می کند به بخش SSL / TLS در داشبورد Cloudflare برگردید ، به تب Origin Server بروید و گزینه Authenticated Origin Pulls را دوباره بزنید تا فعال شود.
نتیجه
در این آموزش وب سایت خود Nginx را با رمزگذاری ترافیک بین Cloudflare و سرور مجازی Nginx با استفاده از گواهینامه Origin CA از Cloudflare ، ایمن کردید. سپس Authenticated Origin Pulls را روی سرور مجازی Nginx تنظیم میکنید تا اطمینان حاصل شود که تنها درخواستهای سرور مجازی های Cloudflare را می پذیرد و از اتصال مستقیم دیگران به سرور مجازی Nginx جلوگیری می کند.
نحوه استفاده از Traefik به عنوان پروکسی معکوس برای کانتینرهای Docker در اوبونتو 20.04
نحوه نصب و ایمن سازی Redis در Centos7
چگونه می توان محیط JupyterLab را در اوبونتو 18.04 تنظیم کرد
نحوه نصب Webmin در Ubuntu 20.04
نحوه بازنویسی آدرس های اینترنتی با mod_rewrite برای Apache در اوبونتو 20.04
نحوه مدیریت چندین سرور با دستورات Ad Hoc Ansible
چگونه می توان REST API را با Prisma و PostgreSQL ساخت
نحوه میزبانی وب سایت با استفاده از Cloudflare و Nginx در اوبونتو 18.04
نحوه استفاده از Traefik به عنوان پروکسی معکوس برای کانتینرهای Docker در Ubuntu 18.04
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
https://vpsgol.net/product/vps-germany/
https://vpsgol.net/product/vps-usa/
https://vpsgol.net/product/vps-france/
https://vpsgol.net/product/vps-canada/
https://vpsgol.net/product/vps-poland/
https://vpsgol.net/product/vps-netherlands/
https://vpsgol.net/product/vps-england/