مجوزهای Wildcard را از Lets Encrypt در Nginx در اوبونتو 19.04 نصب کنید

در ماه مارس 2018 بیایید رمزگذاری پشتیبانی از گواهینامه های کارت ویزیت را اضافه کنیم. گواهینامه های Wildcard به شما امکان می دهد تمام زیر دامنه های سطح اول یک دامنه را با یک مجوز واحد ایمن کنید. گواهینامه های Wildcard فقط از طریق ACMEv2 ، که نسخه به روز شده پروتکل ACME است ، قابل دستیابی هستند. برای استفاده از ACMEv2 برای صدور گواهینامه های کارت ویزیت یا کارتهای غیر ویکارد ، به مشتری نیاز دارید که به روز شده برای پشتیبانی از ACMEv2 باشد. یکی از این مشتری ها acme.sh است که یک پروتکل پروتکل ACME / ACMEv2 است که صرفاً به زبان Shell (پوسته یونیکس) و بدون هیچگونه وابستگی نوشته شده است. علاوه بر این ، دامنه های wildcard باید با استفاده از نوع چالش DNS-01 تأیید شوند. این بدان معنی است که شما برای اثبات کنترل بر یک دامنه برای به دست آوردن گواهینامه کارت ویزیت ، باید سوابق DNS TXT را تغییر دهید.

در این راهنما چگونگی به دست آوردن و استفاده از گواهی نامه های Wildcard رایگان از Let Encrypt on Ubuntu 19.04 را با استفاده از acme.shکلاینت ، ابزار Lexicon برای دستکاری خودکار سوابق DNS با مصرف API Vultr و اعزام گواهینامه به سرور وب Nginx ارائه می دهیم.

الزامات

  • تازه سرور Ubuntu 19.04 Vultr مستقر شده است.
  • شما یک نام دامنه ثبت شده دارید این راهنما example.comبه عنوان یک دامنه مثال استفاده می کند.
  • اطمینان حاصل کنید که سوابق A / AAAA و CNAME DNS را برای نام دامنه کاملاً واجد شرایط (FQDN) خود تنظیم کرده اید. اگر لازم است خود را با مفاهیم DNS آشنا کنید ، می توانید با آموزش مقدماتی در Vultr DNS مشورت کنید .
  • Vultr API Access در کنترل پنل حساب Vultr شما فعال شده است.

قبل از اینکه شروع کنی

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

lsb_release -ds
# Ubuntu 19.04

با sudoدسترسی و نام کاربری مورد نظر خود یک حساب کاربری جدید ایجاد کنید و به آن تغییر دهید. ما با استفاده از johndoe.

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

توجه : با نام کاربری خود جایگزین johndoeکنید.

منطقه زمانی را تنظیم کنید.

sudo dpkg-reconfigure tzdata

اطمینان حاصل کنید که سیستم اوبونتو به روز است.

sudo apt update && sudo apt upgrade -y

بسته های لازم را نصب کنید.

sudo apt install -y git wget curl socat

Nginx را نصب کنید

وب سرور Nginx را نصب کنید.

sudo apt install -y nginx

نسخه را بررسی کنید.

sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)

Python �� Lexicon را نصب کنید

به عنوان اولین قدم در روند اخذ گواهینامه های wildcard از Let Encrypt با استفاده از acme.sh و Vultr API ، باید Python و Lexicon را نصب کنید . Lexicon یک بسته Python است که راهی برای دستکاری سوابق DNS بر روی چندین ارائه دهنده DNS به روش استاندارد ارائه می دهد.

اگر قبلاً روی سیستم خود نصب نشده اید ، Python را نصب کنید.

sudo apt install -y python3

با تأیید نسخه ، نصب را تأیید کنید.

python3 --version
# Python 3.7.3

ابزار Lexicon را نصب کنید. واژگان یک ابزار Python است که به شما امکان می دهد سوابق DNS را در ارائه دهندگان DNS مختلف به روش استاندارد دستکاری کنید.

sudo apt install -y lexicon

نسخه Lexicon را بررسی کنید.

lexicon --version
# lexicon 3.0.8

نصب acme.shمشتری

Acme.shیک پروتکل پروتکل ACME است که صرفاً به زبان Shell (پوسته یونیکس) نوشته شده است و فرایند دریافت گواهی امضا شده از طریق Letry Encrypt را خودکار می کند. این نرم افزار از ACME v1 و ACME v2 پشتیبانی می کند و از همه مهمتر از گواهینامه های Wildcard ACME v2 پشتیبانی می کند. در این بخش اسکریپت Acme.sh را نصب می کنیم.

توجه: این است که به استفاده توصیه می شود rootکاربر برای نصب acme.sh، اگر چه آن نیازی نیست root/ sudoدسترسی.

تغییر به rootکاربر را از کاربر عادی اگر شما آن را ایجاد کرده اند.

sudo su - root

بارگیری و نصب کنید acme.sh.

git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd

نسخه را بررسی کنید.

acme.sh --version
# v2.8.2

دریافت گواهینامه های wildcard از Let Encrypt

برای به دست آوردن مجوز wildcard ، فقط می توانیم از روش اعتبار سنجی DNS استفاده کنیم. ما از Lexicon و Vultr DNS API برای دستکاری سوابق TXT DNS استفاده می کنیم.

گواهینامه های wildcard RSA و ECC را برای دامنه خود بدست آورید.

# Configure your API key and username
export PROVIDER=vultr
export LEXICON_VULTR_USERNAME="[email protected]"
export LEXICON_VULTR_TOKEN="XXXXXXXXXXXXXXX"

# RSA 2048
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength 2048
# ECC 256
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength ec-256

توجه : فراموش نکنید example.comکه نام دامنه خود را جایگزین کنید ، و مقادیر حفره نگهدار API Vultr را جایگزین ارزش خود کنید.

بعد از اجرای دستورات قبلی ، گواهینامه ها و کلیدهای شما در این موارد قرار دارند:

  • برای RSA: ~/.acme.sh/example.comفهرست.
  • برای ECC / ECDSA: ~/.acme.sh/example.com_eccفهرست.

توجه : شما نباید از پرونده های مجوز در ~/.acme.sh/پوشه استفاده کنید ، آنها فقط برای استفاده داخلی هستند ، ساختار دایرکتوری ممکن است در آینده تغییر کند.

برای لیست گواهینامه های خود ، می توانید اجرا کنید:

acme.sh --list

پوشه ای را برای ذخیره گواهینامه های خود در تولید ایجاد کنید. ما از /etc/letsencryptدایرکتوری استفاده می کنیم

sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

گواهینامه ها را برای استفاده در نصب بر روی سرور خود نصب کنید.

# RSA
acme.sh --install-cert -d example.com \
        --cert-file /etc/letsencrypt/example.com/cert.pem \
        --key-file /etc/letsencrypt/example.com/private.key \
        --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
        --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
        --key-file /etc/letsencrypt/example.com_ecc/private.key \
        --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

اکنون که موفق به اخذ مجوزهای wildcard از Let Encrypt شدیم ، باید سرور وب Nginx را پیکربندی کنیم. همه گواهینامه ها به طور خودکار هر 60 روز یکبار تمدید می شوند.

پس از دریافت و نصب گواهینامه ها در محل مورد نظر خود ، می توانید از rootکاربر به یک sudoکاربر معمولی وارد شوید و با استفاده از در sudoصورت لزوم ، مدیریت سرور خود را ادامه دهید .

exit

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

sudo vim /etc/nginx/sites-available/example.com.confپرونده را با محتوای زیر اجرا و پر کنید. همه وقایع را example.comبا نام دامنه خود جایگزین کنید.

server {

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

  server_name example.com *.example.com;
  root /var/www/example.com;

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

}

example.com.confبا پیوند دادن پرونده به sites-enabledفهرست ، پیکربندی جدید را فعال کنید .

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

پیکربندی Nginx را آزمایش کنید.

sudo nginx -t

بارگیری مجدد Nginx

sudo systemctl reload nginx.service

خودشه. ما با استفاده از برنامه های acme.sh ، Lexicon و Vultr API ، مجوزهای Wildcard را به Nginx اعزام کردیم. وقتی می خواهید چندین زیر دامنه سطح اول تولید شده بصورت دینامیکی ایجاد کنید ، گواهینامه های Wildcard می توانند مفید باشند.



Leave a Comment

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

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

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

راه اندازی یک Chroot در دبیان

راه اندازی یک Chroot در دبیان

در این مقاله به شما می آموزد که چگونه زندان دزدگیر را در دبیان تنظیم کنید. تصور می کنم از Debian 7.x استفاده می کنید. اگر دبیان 6 یا 8 را اجرا کردید ، ممکن است این کار کند

نحوه فعال سازی TLS 1.3 در Apache در Debian 10

نحوه فعال سازی TLS 1.3 در Apache در Debian 10

با استفاده از یک سیستم متفاوت؟ TLS 1.3 نسخه ای از پروتکل Transport Layer Security (TLS) است که در سال 2018 به عنوان یک استاندارد پیشنهادی در RFC 8446 منتشر شد

امنیت MongoDB

امنیت MongoDB

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

چگونه می توان SSH را با یک توالی درحال ضرب در بند اوبونتو 18.04 ایمن تر کرد

چگونه می توان SSH را با یک توالی درحال ضرب در بند اوبونتو 18.04 ایمن تر کرد

با استفاده از یک سیستم متفاوت؟ مقدمه علاوه بر تغییر درگاه پیش فرض برای SSH ، و استفاده از یک جفت کلید برای تأیید اعتبار ، می توان از ضربه زدن به پورت t استفاده کرد

نحوه فعال سازی TLS 1.3 در Apache در FreeBSD 12

نحوه فعال سازی TLS 1.3 در Apache در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ TLS 1.3 نسخه ای از پروتکل Transport Layer Security (TLS) است که در سال 2018 به عنوان یک استاندارد پیشنهادی در RFC 8446 منتشر شد

نحوه نصب rkhunter در اوبونتو

نحوه نصب rkhunter در اوبونتو

Rkhunter نرم افزاری است که rootkits را در سرور لینوکس پیدا می کند. روت کیت ها توسط هکرها نصب شده اند تا همیشه بتوانند به سرور دسترسی داشته باشند. در این مقاله ، شما b

نحوه احراز هویت دو عاملی (2FA) برای SSH در Ubuntu 14.04 با استفاده از Google Authenticator

نحوه احراز هویت دو عاملی (2FA) برای SSH در Ubuntu 14.04 با استفاده از Google Authenticator

با استفاده از یک سیستم متفاوت؟ چندین روش ورود به سیستم به سرور از طریق SSH وجود دارد. روش ها شامل ورود به سیستم رمزعبور ، ورود به سیستم بر اساس کلید و دو واقعیت است

چگونه TLS 1.3 را در Nginx در Ubuntu 18.04 LTS فعال کنید

چگونه TLS 1.3 را در Nginx در Ubuntu 18.04 LTS فعال کنید

با استفاده از یک سیستم متفاوت؟ TLS 1.3 نسخه ای از پروتکل Transport Layer Security (TLS) است که در سال 2018 به عنوان یک استاندارد پیشنهادی در RFC 8446 منتشر شد

با استفاده از Guacamole در Ubuntu 16.04 LTS یک Frontend HTML HTML 5 RDP / SSH ایجاد کنید

با استفاده از Guacamole در Ubuntu 16.04 LTS یک Frontend HTML HTML 5 RDP / SSH ایجاد کنید

مقدمه هدف این آموزش خلاص شدن از شر SSH عمومی و اتصالات RDP است. با قرار دادن این همه پشت یک مشتری HTML5 بسیار مناسب

امنیت SSH در اوبونتو 14.04

امنیت SSH در اوبونتو 14.04

بعد از ایجاد یک سرور جدید ، ترفندهایی برای پیکربندی وجود دارد که باید آنها را برای سخت تر کردن امنیت سرور خود انجام دهید. به عنوان roo ، یک کاربر جدید ایجاد کنید

راه اندازی LetsEncrypt On Linux

راه اندازی LetsEncrypt On Linux

LetsEncrypt یک مجوز گواهینامه با یک مشتری خودکار است. به طور خلاصه ، این بدان معنی است که می توانید وب سایت های خود را بدون هیچ هزینه ای ایمن کنید. درست است ، شما می توانید گرم کنید

پیکربندی Apache با گواهی TLS / SSL خود امضا شده در اوبونتو 16.04

پیکربندی Apache با گواهی TLS / SSL خود امضا شده در اوبونتو 16.04

SSL و TLS جانشین آن (Secure Sockets Layer / Transport Layer Security) لایه ای از رمزگذاری را بین مشتری و سرور اضافه می کنند. بدون این

نحوه نصب اسکنر آسیب پذیری OpenVAS در اوبونتو 16.04

نحوه نصب اسکنر آسیب پذیری OpenVAS در اوبونتو 16.04

مقدمه OpenVAS یک مجموعه منبع باز است که می تواند برای اسکن آسیب پذیری و مدیریت آسیب پذیری مورد استفاده قرار گیرد. این مخفف عبارت Open Vulnerabilit است

اصلاح Icinga2 برای استفاده از مدل Master / Client در CentOS 6 یا CentOS 7

اصلاح Icinga2 برای استفاده از مدل Master / Client در CentOS 6 یا CentOS 7

Icinga2 یک سیستم مانیتورینگ قدرتمند است و هنگامی که در یک مدل کارشناسی ارشد مشتری استفاده می شود ، می تواند نیاز به کنترل های مبتنی بر NRPE را جایگزین کند. استاد کلین

نحوه غیرفعال کردن SELinux در CentOS 7

نحوه غیرفعال کردن SELinux در CentOS 7

SELinux ، مخفف Security Enhanced Linux ، یک پیشرفت امنیتی برای سیستم عامل لینوکس است. این یک سیستم برچسب زدن است که بسیاری از سیستم ها را مسدود می کند

نحوه نصب Ntopng در اوبونتو 16.04

نحوه نصب Ntopng در اوبونتو 16.04

مقدمه Ntopng یک ابزار منبع باز است که برای نظارت بر پروتکل های مختلف شبکه روی سرورهای شما استفاده می شود. این نسخه نسل بعدی مبدا است

Lets Encrypt: مهاجرت از TLS-SNI-01

Lets Encrypt: مهاجرت از TLS-SNI-01

Lets Encrypt یک سرویس رایگان است که برای تأمین امنیت وب سایت شما گواهی نامه تولید می کند. این برنامه از تولید انواع مختلفی از گواهینامه ها ، از جمله پشتیبانی می کند

ایمن سازی سرور Apache در CentOS 6

ایمن سازی سرور Apache در CentOS 6

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

Port Knocking on Debian

Port Knocking on Debian

Using a Different System? By now, youve probably changed your default SSH port. Still, hackers can easily scan port ranges to discover that port - but wit

نحوه نصب بستر سبد خرید 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 است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد