نحوه نصب گواهینامه SSL / TLS برای وردپرس با Apache با استفاده از پروکسی معکوس Nginx در CentOS VPS

مقدمه

Nginx و Apache محبوب ترین سرورهای وب منبع باز هستند که حتی توسط وب سایتهای تولید ترافیک بزرگ نیز مورد استفاده قرار می گیرند. در این آموزش نحوه استفاده از هر دو سرور وب اما با قابلیت های مختلف را نشان می دهیم. وب سرور Apache وب سایت WordPress را در پشت سرور nginx (با گواهی SSL نصب شده) اجرا می کند که به عنوان یک پروکسی معکوس برای سرور apache عمل می کند. در این حالت ، Nginx به عنوان Reverse Proxy از همه اتصالات SSL به نمایندگی از Apache استفاده می شود ، در حالی که آپاچی همچنان سرور وب است. این یکی از کاربردهای بسیار زیاد Nginx به عنوان یک پروکسی معکوس است.


بنابراین ، همه اتصالات URL از مرورگرهای کاربران ابتدا به سرور پروکسی معکوس Nginx ضربه می زنند و مجبور می شوند با استفاده از گواهی SSL نصب شده سرور ، در پروتکل HTTPS قرار بگیرند. سپس Nginx تمام درخواست ها را به وب سرور Apache که سایت وردپرس را اجرا می کند ، ارسال می کند. در نتیجه ، پیکربندی هر دو سرور برای گوش دادن به درگاه های مختلف برای جلوگیری از درگیری بسیار ضروری است.

>در این آموزش نحوه نصب گواهینامه SSL را در پروکسی معکوس Nginx برای وب سایت وردپرس میزبانی شده در وب سرور Apache نشان می دهیم.

پیش نیازها

فرض بر این است که وردپرس و آپاچی بر روی سرور لینوکس CentOS 7 نصب ، تنظیم و تنظیم خوب شده اند.

نصب & Nginx را پیکربندی کنید

دستورالعمل ها را برای نصب سرور nginx اجرا کنید

$ sudo yum اپل را نصب کنید
$ sudo yum نصب nginx

پرونده پیکربندی apache را ویرایش کنید

$ sudo vim /etc/httpd/conf/httpd.conf

با ویرایش خط به صورت زیر ، پورت گوش دادن را به درگاه دیگری (به عنوان مثال 8080) تغییر دهید.

8080 گوش کن

این برای جلوگیری از گوش دادن nginx به همان درگاه Apache است ، بنابراین اکنون nginx به درگاه 80 گوش می دهد در حالی که apache به درگاه 8080 گوش می دهد.

درگاه 8080 را در فایروال باز کنید:

$ sudo firewall-cmd –permanent –add-port = 8080 / TCP
$ sudo firewall-cmd – بارگیری مجدد

سرویس آپاچی را مجدداً راه اندازی کنید

$ sudo systemctl httpd را مجدداً راه اندازی کنید

شروع کنید & nginx را فعال کنید

$ sudo systemctl شروع nginx
$ sudo systemctl nginx را فعال می کند

تأیید کنید که nginx با استفاده از curl خوب کار می کند تا نام و نسخه خود را در هدرهای HTTP نشان دهد

$ curl -I http: // localhost

Nginx را برای SSL پیکربندی کنید

بخش زیر را از قسمت سرور https (ssl) جدا کنید.

# تنظیمات برای سرور فعال TLS

صدور گواهینامه SSL

اول از همه ، nginx و دایرکتوری های خصوصی را به شرح زیر تهیه کنید

$ sudo mkdir -p / etc. / pki / nginx / private

سپس کلیدها را تولید کنید:

$ sudo opensl req -x509 -nodes -sha256 -days 365 -nkeykey rsa: 2048 -keyout /etc/pki/nginx/private/server.key -out/etc/pki/nginx/server.crt

توجه ویژه: اطمینان حاصل کنید که درگاه 443 از طریق فایروال به شرح زیر مجاز است:

$ sudo firewall-cmd –permanent –add-port = 443 / tcp
$ sudo firewall-cmd – بارگیری مجدد

ویرایش Rhe nginx.conf Dile برای مجاز بودن یک پروکسی معکوس به Apache

در قسمت سرور (http) قسمت – بخش اول: بخش موقعیت مکانی را با موارد زیر جایگزین کنید.

محل / {
$ uriapache را امتحان کنید.
}

مکانapache
proxy_set_header X-Real-IP $ remote_addr؛
proxy_set_header X-Forwarded-برای $ remote_addr؛
proxy_set_header طرح X-Forwarded-Proto $؛
proxy_set_header میزبان $ میزبان؛
proxy_pass http://127.0.0.1:8080؛
}

محل ~ [^؟] * / $
proxy_set_header X-Real-IP $ remote_addr؛
proxy_set_header X-Forwarded-برای $ remote_addr؛
proxy_set_header طرح X-Forwarded-Proto $؛
proxy_set_header میزبان $ میزبان؛
proxy_pass http://127.0.0.1:8080؛
}

محل \ .php $
proxy_set_header X-Real-IP $ remote_addr؛
proxy_set_header X-Forwarded-برای $ remote_addr؛
proxy_set_header طرح X-Forwarded-Proto $؛
proxy_set_header میزبان $ میزبان؛
proxy_pass http://127.0.0.1:8080؛
}

محل ~ / \ {
انکار همه؛
access_log خاموش؛
log_not_found؛
}

در زیر قسمت سرور (https) – بخش دوم: بخش موقعیت مکانی را با موارد زیر جایگزین کنید.

محل / {
$ uriapache را امتحان کنید.
}

مکانapache
proxy_set_header X-Real-IP $ remote_addr؛
proxy_set_header X-Forwarded-برای $ remote_addr؛
proxy_set_header طرح X-Forwarded-Proto $؛
proxy_set_header میزبان $ میزبان؛
proxy_pass http://127.0.0.1:8080؛
}

محل ~ [^؟] * / $
proxy_set_header X-Real-IP $ remote_addr؛
proxy_set_header X-Forwarded-برای $ remote_addr؛
proxy_set_header طرح X-Forwarded-Proto $؛
proxy_set_header میزبان $ میزبان؛
proxy_pass http://127.0.0.1:8080؛
}

محل \ .php $
proxy_set_header X-Real-IP $ remote_addr؛
proxy_set_header X-Forwarded-برای $ remote_addr؛
proxy_set_header طرح X-Forwarded-Proto $؛
proxy_set_header میزبان $ میزبان؛
proxy_pass http://127.0.0.1:8080؛
}

محل ~ / \ {
انکار همه؛
access_log خاموش؛
log_not_found؛
}

برای مجموعه های رمزگذاری پیشنهادی به وب سایت ویکی موزیلا بروید> و ciphersuites را در قسمت رمزگذار در قسمت سرور دوم (https) قرار دهید.

ssl_ciphers ‘ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: ECDHE-ECDES-ESAES RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA256 ‘؛

سپس پرونده را ذخیره کنید:

وردپرس را پیکربندی کنید

پرونده wp-config را ویرایش کنید تا با اضافه کردن کد زیر ، تغییر مسیر را به https تبدیل کنید:

تعریف (“FORCE_SSL_ADMIN” ، درست)؛
if (strpos ($ _ SERVER [‘HTTP_X_FORWARDED_PROTO’]، ‘https’)! == false)
$ _SERVER [‘HTTPS’] = ‘روشن’؛
$ sudo vim /var/www/html/wp-config.php

پرونده را ذخیره کنید

برای اتصالات httpd و nginx از طریق SELinux مجوز دهید

$ sudo setsebool -P httpd_can_network_connect 1

به داشبورد wp-admin سایت بروید

تنظیمات > کلی ، سپس تغییر دهید "http" به "https" برای هر دو "آدرس وردپرس (URL)" و "آدرس سایت (URL)"

و تغییرات را ذخیره کنید

همه ترافیک را به https مجبور کنید

nginx.conf را با اضافه کردن خط زیر بخش سرور http ویرایش کنید

Return 301 https: // $ server_name $ request_uri؛

خدمات nginx و apache را مجدداً راه اندازی کنید

$ sudo systemctl شروع مجدد nginx httpd

اکنون ما یک سایت وردپرس با گواهی SSL خود امضا شده همانطور که در زیر نشان داده شده است:

https://35.225.251.235

نتیجه

اکنون یک وب سایت وردپرس کاملاً کاربردی با گواهی SSL دارید. سرور nginx ، اگرچه به عنوان یک پروکسی معکوس کار می کند با وب سرور آپاچی شفاف و یکپارچه عمل می کند. به نظر می رسد که درخواست ها مستقیماً به وب سرور Apache ارائه می شوند. در واقع ، این یکی از موثرترین راه ها برای تأمین وب سایت شما و کاهش آسیب پذیری در برابر هکرها است.

در صورت بروز مشکل ، از خدمات پشتیبانی میزبان وب خود برای کمک بخواهید – آنها باید بتوانند به شما کمک کنند. اگر آنها نتوانند ، HostaAdvice می تواند بهترین ارائه دهندگان میزبانی VPS ، بهترین ارائه دهندگان میزبانی وردپرس و بهترین خدمات هاستینگ لینوکس را (بسته به آنچه شما به دنبال آن هستید) پیشنهاد دهید. انتخاب های برتر در هر دسته به ارائه خدمات و پشتیبانی برجسته مشتری مشهور است.

این 3 سرویس برتر میزبانی وردپرس را ببینید:

FastComet

قیمت شروع:
2.95 دلار


قابلیت اطمینان
9.7


قیمت گذاری
9.5


کاربر پسند
9.7


پشتیبانی
9.7


امکانات
9.6

بررسی ها را بخوانید

از FastComet بازدید کنید

میزبان

قیمت شروع:
$ 0.99


قابلیت اطمینان
9.3


قیمت گذاری
9.3


کاربر پسند
9.4


پشتیبانی
9.4


امکانات
9.2

بررسی ها را بخوانید

از هاستینجر بازدید کنید

میزبانی A2

قیمت شروع:
$ 3.92


قابلیت اطمینان
9.3


قیمت گذاری
9.0


کاربر پسند
9.3


پشتیبانی
9.3


امکانات
9.3

بررسی ها را بخوانید

از میزبانی A2 دیدن کنید

مقالات مرتبط با نحوه

  • نحوه پیکربندی Nginx به عنوان Reverse Proxy برای Apache در Ubuntu 16.04 VPS یا سرور اختصاصی
    کارشناس
  • چگونه می توانیم با Nginx در سرور اختصاصی Ubuntu 18.04 یا سرور اختصاصی رمزگذاری کنیم
    حد واسط
  • نحوه اضافه کردن SSL رایگان در وردپرس با استفاده از Let Encrypt
    حد واسط
  • نحوه نصب وردپرس با Nginx & ردیس
    تازه کار
  • نحوه نصب وردپرس با Nginx & مجدداً روی CentOS VPS یا سرور اختصاصی
    حد واسط
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me