نحوه استفاده از HTTPS در Arch Linux Webserver

پیش نیازها

  • سرور Vultr که تا به امروز Arch Linux را اجرا می کند (به این مقاله مراجعه کنید)
  • یک وب سرور در حال اجرا ، یا Apache یا Nginx
  • دسترسی سودو
    • دستورات مورد نیاز برای اجرا به عنوان root توسط پیشوند تنظیم شده اند #، و دستورهایی که می توانند به عنوان یک کاربر معمولی اجرا شوند $. راه پیشنهادی برای اجرای دستورات به عنوان root ، به عنوان یک کاربر معمولی ، پیشوند هرکدام از آنها با sudo.
  • یک ویرایشگر متن نصب کنید و با آن آشنا شوید ، مانند vi ، vim ، nano ، emacs یا ویرایشگر مشابه دیگر.

خدمات ایمن از طریق HTTPS

ارائه محتوا از طریق HTTPS می تواند از رمزگذاری فوق العاده قوی استفاده کند ، بنابراین هیچ کس از عبور و مرور بین کاربر و سرور وب نمی تواند آن را بخواند. این نه تنها رمز عبور خود را رمزگذاری می کند ، بلکه به URL نیز دسترسی پیدا می کند که در غیر این صورت می تواند اطلاعات را افشا کند. مدتی است ، گوگل تا حدودی در حال تعیین رتبه بندی جستجو بر اساس اینکه آیا یک صفحه از HTTPS استفاده می کند ، به عنوان بخشی از ابتکار عمل HTTPS Everywhere است.

توجه : یک جستجوی DNS نام دامنه را به هم متصل می کند ، اما کل URL در طی آن فرآیند در معرض دید قرار نمی گیرد.

گواهی SSL / TLS را بدست آورید

از نظر فنی ، TLS SSL را برای گواهی های HTTPS جایگزین کرد ، اما ، اکثر مکان ها به سادگی گواهی های TLS را با اصطلاحات محبوب تر SSL ادامه می دهند. پس از استفاده مشترک ، این راهنما نیز همین کار را خواهد کرد.

برای استفاده از HTTPS ، سرور وب شما .keyبرای استفاده خصوصی از آن به یک کلید خصوصی ( ) نیاز دارد و یک گواهی ( .crt) برای اشتراک گذاری عمومی که شامل یک کلید عمومی است ، نیاز دارد. یک گواهی باید امضا شود. می توانید خودتان آن را امضا کنید ، اما مرورگرهای مدرن شکایت دارند که امضاکننده را تشخیص نمی دهند. به عنوان مثال ، Chrome نشان می دهد Your connection is not private. Attackers might be trying to steal your information... NET::ERR_CERT_AUTHORITY_INVALID:. اگر فقط یک گروه خصوصی از وب سایت استفاده می کنند ، این امر قابل قبول است ، زیرا مرورگرها امکان ادامه کار را می دهند. به عنوان مثال ، در Chrome ، روی "Advanced" ، سپس "ادامه به ... (ناامن)" کلیک کنید. هنوز هم "امن نیست" نشان داده و از "https" عبور می کند.

توجه داشته باشید که این فرایند از کشور ، ایالت / مشیت ، محل زندگی ، سازمان ، واحد سازمانی و نامهای مشترک و آدرس ایمیل شما درخواست خواهد کرد. همه این موارد در مرورگر هرکسی که از طریق HTTPS به سایت شما متصل شود قابل دسترسی است.

همچنین توجه داشته باشید که اگر به مجوزهای میزبان مجازی می پردازید ، باید نامهای مجزا را در زیر بیابید و به آنها در تنظیمات میزبان مجازی خود اشاره کنید.

به دایرکتوری مناسب برای سرور وب خود تغییر دهید.

اگر Apache را نصب کردید:

$ cd /etc/httpd/conf

اگر Nginx را نصب کردید:

$ cd /etc/nginx

هنگامی که در دایرکتوری مناسب قرار گرفتید ، یک کلید خصوصی ( server.key) و گواهی خود امضاء ( server.crt) را تولید کنید:

# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 825

مجوزهای فقط خواندنی را تنظیم کنید و فقط اجازه دهید کلید خصوصی توسط ریشه خوانده شود:

# chmod 400 server.key
# chmod 444 server.crt

از طرف دیگر ، می توانید گواهی امضاء شده توسط یک مرجع صدور گواهینامه معتبر دریافت کنید. برای امضای گواهینامه خود می توانید به شرکت های مختلفی (مقامات مجوز) پرداخت کنید. هنگام بررسی مقامات مجوز ، می توان مهم دانست كه مرورگرها و كدام نسخه آنها را تشخیص خواهند داد. ممکن است برخی از مقامات جدید دارای گواهینامه رسمی رسمی تر از یک گواهی خود امضا شده در نسخه های مرورگر قدیمی شناخته نشوند.

شما نه تنها به یک آدرس IP عمومی بلکه به یک نام دامنه نیز نیاز دارید. برخی از مقامات گواهینامه می توانند گواهی خود را به آدرس IP عمومی صادر کنند ، اما بندرت انجام می شود.

بسیاری از ارائه دهندگان یک آزمایش 30 روزه رایگان ارائه می دهند ، که توصیه می شود از ابتدا شروع کنید ، بنابراین می توانید قبل از پرداخت هزینه اطمینان حاصل کنید که این روند برای شما کار می کند. بسته به نوع آن و قیمتها ممکن است از چند دلار در سال به صدها نفر متفاوت باشد ، و گزینه هایی مانند دامنه های مختلف یا زیر دامنه ها نیز متفاوت است. گواهی استاندارد فقط نشان می دهد كه مرجع امضا كننده شخصی كه گواهینامه می تواند در دامنه ایجاد كند ، تأیید كرده است. یک گواهینامه اعتبار سنجی پیشرفته همچنین نشان می دهد که مقام امضا کننده اقدام به بررسی برخی از موارد دقیق در مورد بررسی درخواست کننده می کند و در مرورگرهای مدرن نوار سبز را در URL یا در نزدیکی URL نشان می دهد. هنگام تأیید اینکه می توانید در دامنه تغییراتی ایجاد کنید ، برخی از مقامات امضاکننده از شما درخواست می کنند که ایمیل را در یک آدرس مهم صدایی مانند نام دامنه دریافت کنید ، مانند[email protected]. بسیاری از آنها تأیید جایگزین ، مانند قرار دادن پرونده برای قرار دادن در سرور خود ، مانند قرار دادن پرونده آنها /srv/http/.well-known/pki-validation/برای Apache یا /usr/share/nginx/html/.well-known/pki-validation/Nginx ، برای تنظیمات فهرست دایرکتوری میزبان را ارائه می دهند. یا به طور موقت با ورود CNAME ، آنها را در پرونده DNS دامنه شما ارائه می دهند.

مرجع امضای شما انتخاب می کنید ممکن است مراحل کمی متفاوت باشد ، اما بیشتر مراحل زیر را می پذیرند:

در فهرست مناسب ، یک کلید خصوصی ( server.key) ایجاد کنید:

# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key

کلید خصوصی را فقط با ریشه فقط در خواندن تنظیم کنید:

# chmod 400 server.key

ایجاد یک درخواست امضای گواهی ( server.csr). شما باید نام دامنه خود را وقتی از شما درخواست می کند Common Nameقرار دهید و می توانید رمز عبور چالش را خالی بگذارید:

# openssl req -new -sha256 -key server.key -out server.csr

درخواست امضای گواهینامه را فقط با ریشه بخوانید:

# chmod 400 server.csr

مشاهده محتوای درخواست امضای گواهی. این اطلاعات به صورت رمزگذاری شده با پایه 64 است ، بنابراین به نظر می رسد مانند کاراکترهای تصادفی:

# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
.....
-----END CERTIFICATE REQUEST-----

مراحل صالحیت امضای خود را طی کنید و وقتی از شما خواسته شد در CSR خود چسب -----بزنید ، کل این پرونده از جمله خطوط را کپی و جایگذاری کنید . بسته به مرجع امضای شما و نوع گواهینامه ، آنها ممکن است فوراً گواهی امضا شده را به شما بدهند ، یا ممکن است چند روز طول بکشد. هنگامی که آنها گواهی امضا شده را به شما دادند ، آنرا (از جمله خطوط -----BEGIN CERTIFICATE-----و -----END CERTIFICATE-----خطوط) در پرونده ای به نام server.crt، در فهرست مناسب ، که در بالا برای سرور وب خود آورده شده است ، کپی کنید و آن را فقط خواندنی کنید:

# chmod 444 server.crt

سرور وب خود را برای استفاده از کلید خصوصی و گواهی پیکربندی کنید

اگر از فایروال استفاده می کنید ، باید ترافیک ورودی TCP را به درگاه فعال کنید 443.

برای آپاچی

/etc/httpd/conf/httpd.confاین سطرها را ویرایش و لغو لغو کنید:

LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf

توجه داشته باشید که اگر از هاست های مجازی استفاده می کنید ، از تغییر فوق /etc/httpd/conf/httpd.confدر همان میزبان از همان گواهینامه استفاده کنید. برای اینکه گواهینامه خود را به هر میزبان بدهید تا از شکایت مرورگر در مورد گواهی عدم مطابقت با نام دامنه ، مجبور شوید هر یک از پرونده های پیکربندی آنها را ویرایش کنید /etc/httpd/conf/vhosts/تا به گواهینامه و کلید خصوصی خود اشاره کنند:

  • تغییر <VirtualHost *:80>به <VirtualHost *:80 *:443>.
  • در این VirtualHostبخش موارد زیر را اضافه کنید:

    SSLEngine on
    SSLCertificateFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.crt"
    SSLCertificateKeyFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.key"
    

راه اندازی مجدد Apache:

# systemctl restart httpd

برای Nginx

بخش را ویرایش /etc/nginx/nginx.confو در نزدیکی پایین ، HTTPS serverبخش را از حالت انتخاب خارج کنید و خطوط را به صورت زیر تغییر دهید:

ssl_certificate      server.crt;
ssl_certificate_key  server.key;
root                /usr/share/nginx/html;

توجه داشته باشید اگر از هاست مجازی استفاده می کنید ، تغییر فوق /etc/nginx/nginx.confرا همه میزبان ها را به آن مکان ارسال می کنید. برای دادن گواهینامه خاص خود به هر میزبان ، باید هرکدام از پرونده های پیکربندی خود را در /etc/nginx/sites-enabled/آن ویرایش کنید تا یک بلوک سرور اضافی برای اشاره به گواهینامه و کلید خصوصی خود داشته باشید:

server {
    listen 443 ssl;
    server_name YOUR-DOMAIN-NAME.com;

    ssl_certificate      YOUR-DOMAIN-NAME.com.crt;
    ssl_certificate_key  YOUR-DOMAIN-NAME.com.key;

    ssl_session_cache   shared:SSL:1m;
    ssl_session_timeout 5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        root /usr/share/nginx/YOUR-DOMAIN-NAME.com;
        index  index.html index.htm;
    }
}

راه اندازی مجدد Nginx:

# systemctl restart nginx


با استفاده از Makepkg در Arch Linux

با استفاده از Makepkg در Arch Linux

اگر مستقیم از makepkg استفاده می کنید ، سیستم شما را تا حدودی آلوده می کند. گروه پکیج پایه باید نصب شود. به این صورت ، به طور پیش فرض ، وابستگی های مورد نیاز به آن

نحوه نصب Apache 2.4 در Arch Linux

نحوه نصب Apache 2.4 در Arch Linux

پیش نیاز سرور Vultr که تا به امروز Arch Linux را اجرا می کند. برای اطلاعات بیشتر به این راهنما مراجعه کنید. دسترسی سودو دستورات مورد نیاز برای اجرا به عنوان root ar

تنظیم سرور Mumble در Arch Linux

تنظیم سرور Mumble در Arch Linux

در این آموزش نحوه تنظیم سرور Mumble (مورمور) در Arch Linux توضیح داده شده است. هر کاری که در این آموزش انجام شده است به عنوان کاربر root انجام می شود. نصب

نصب Arch Linux در سرور Vultr

نصب Arch Linux در سرور Vultr

Vultr عملکرد عالی شما را در اختیارتان قرار می دهد و به شما امکان می دهد علاوه بر قالب های عالی ، از تصویر دلخواه خود استفاده کنید ، این امکان را برای شما فراهم می کند

Arch Linux را با Snapshotting Btrfs نصب کنید

Arch Linux را با Snapshotting Btrfs نصب کنید

Preface Arch Linux توزیع گسترده ای است که به دلیل فناوری پیشرفته و پیکربندی انعطاف پذیر معروف است. با عکس های فوری Btrfs می توانیم از آنها عکس بگیریم

سرور Counter-Strike: Global Offensive (CSGO) را روی Arch Linux تنظیم کنید

سرور Counter-Strike: Global Offensive (CSGO) را روی Arch Linux تنظیم کنید

در این آموزش نحوه تنظیم سرور Counter-Strike: Global Offensive در Arch Linux توضیح داده شده است. این آموزش فرض می کند که شما با یک استفاده استاندارد وارد سیستم شده اید

نحوه نصب Perl 5.28 در وب سرور Arch Linux

نحوه نصب Perl 5.28 در وب سرور Arch Linux

پیش نیاز سرور Vultr در حال اجرا تا به امروز Arch Linux (به این مقاله مراجعه کنید) یک وب سرور در حال اجرا ، دسترسی Apache یا Nginx Sudo: دستورات نیاز دارند

نحوه نصب MongoDB 4.0 در Arch Linux

نحوه نصب MongoDB 4.0 در Arch Linux

پیش نیاز سرور Vultr که تا به امروز Arch Linux را اجرا می کند (به این مقاله مراجعه کنید) دسترسی به سودو: دستورات لازم برای اجرا به عنوان root توسط پیشوند شماره یک و یک

یک سرور Team Fortress 2 را روی Arch Linux تنظیم کنید

یک سرور Team Fortress 2 را روی Arch Linux تنظیم کنید

در این آموزش نحوه تنظیم سرور Team Fortress 2 در Arch Linux توضیح داده شده است. من فرض می کنم که شما با یک حساب کاربری غیر root وارد شده اید که دسترسی به sudo داشته است

نحوه نصب MariaDB 10.3 یا MySQL 8.0 در Arch Linux

نحوه نصب MariaDB 10.3 یا MySQL 8.0 در Arch Linux

پیش نیاز سرور Vultr در حال اجرا به روز Arch Arch (به این مقاله مراجعه کنید.) دسترسی به سودو: دستورات لازم برای اجرا به عنوان root توسط پیشوند # و یک مورد انجام می شود

تنظیم سرور Spigot در Arch Linux

تنظیم سرور Spigot در Arch Linux

در این آموزش نحوه تنظیم سرور Minecraft با استفاده از Spigot روی Arch Linux توضیح داده شده است. این آموزش فرض می کند که شما یک کاربر عادی (غیر ریشه) و hav هستید

نحوه نصب PostgreSQL 11.1 در Arch Linux

نحوه نصب PostgreSQL 11.1 در Arch Linux

پیش نیاز سرور Vultr که تا به امروز Arch Linux را اجرا می کند (به این مقاله مراجعه کنید) دسترسی به سودو. دستورات لازم برای اجرا به عنوان root توسط پیشوند # و یک مورد اجرا می شوند

نحوه نصب Nginx 1.14 در Arch Linux

نحوه نصب Nginx 1.14 در Arch Linux

پیش نیاز سرور Vultr که تا به امروز Arch Linux را اجرا می کند (به این مقاله مراجعه کنید) دسترسی به سودو. دستورات لازم برای اجرا به عنوان root توسط پیشوند # توسط # اجرا می شوند. ت

نصب 2019 Arch Linux در سرور Vultr

نصب 2019 Arch Linux در سرور Vultr

مقدمه Arch Linux نسبت به توزیع های رایج ، دارای کوچکتر اما هنوز قوی است. فلسفه آن کاملاً متفاوت است و مزایای آن وجود دارد

نحوه نصب Python 3.7 در وب سرور Linux Arch

نحوه نصب Python 3.7 در وب سرور Linux Arch

پیش نیاز سرور Vultr در حال اجرا تا به امروز Arch Linux (به این مقاله مراجعه کنید) یک وب سرور در حال اجرا ، دسترسی Apache یا Nginx Sudo: دستورات نیاز دارند

نحوه نصب PHP 7.3 در وب سرور Arch Linux

نحوه نصب PHP 7.3 در وب سرور Arch Linux

پیش نیاز سرور Vultr در حال اجرا تا به امروز Arch Linux (به این مقاله مراجعه کنید) یک وب سرور در حال اجرا ، دسترسی Apache یا Nginx Sudo. دستورات نیاز دارند

ساخت بسته های روی Arch Linux (از جمله AUR)

ساخت بسته های روی Arch Linux (از جمله AUR)

در Arch Linux ، مخزن های رسمی عبارتند از: هسته ، اضافی و جامعه. این بسته ها قبلاً گردآوری شده اند و از طریق Pacman نصب می شوند. برای تو

استفاده از Devtools در Arch Linux

استفاده از Devtools در Arch Linux

بسته Devtools در ابتدا برای کاربران معتمد ساخته شده بود تا بطور صحیح بسته هایی را برای مخازن رسمی ایجاد کنند. با این حال ، می تواند توسط کاربر عادی مورد استفاده قرار گیرد

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد