پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8
(CA) Certificate Authority یک نهاد مسئول صدور گواهینامه های دیجیتال برای تأیید هویت در اینترنت است. اگرچه CA های عمومی یک انتخاب محبوب برای تأیید اعتبار وب سایت ها و سایر خدماتی هستند که به عموم مردم ارائه می شود ، CA های خصوصی معمولاً برای گروه های بسته و خدمات خصوصی استفاده می شوند.
ایجاد یک تایید اعتبار مجاز خصوصی برای شما امکان پیکربندی ، آزمایش و اجرای برنامه هایی را می دهد که نیاز به اتصالات رمزگذاری شده بین مشتری و سرور مجازی دارند. با داشتن یک CA خصوصی ، می توانید برای کاربران ، سرور مجازی ها یا برنامه ها و خدمات فردی در زیرساخت های خود گواهینامه صادر کنید.
برخی از نمونه برنامه های لینوکس که از CA خصوصی خود استفاده می کنند OpenVPN و Puppet هستند. همچنین می توانید سرور مجازی وب خود را برای استفاده از گواهینامه های صادر شده توسط یک CA خصوصی به منظور ایجاد محیط های توسعه و مرحله بندی با سرور مجازی های تولیدی که از TLS برای رمزگذاری اتصالات استفاده می کنند ، پیکربندی کنید.
در این راهنما ، می آموزیم که چگونه یک تایید اعتبار مجاز خصوصی را در سرور مجازی CentOS 8 تنظیم کنیم و نحوه تولید و امضاء یک گواهی آزمایشی با استفاده از CA جدید خود را میاموزید. همچنین یاد خواهید گرفت که چگونه می توانید گواهی عمومی سرور مجازی CA را در فروشگاه گواهینامه سیستم عامل خود وارد کنید تا بتوانید زنجیره اعتماد بین CA و سرور مجازی های از راه دور یا کاربران را تأیید کنید. در آخر یاد می گیرید که چگونه می توانید گواهی نامه ها را ابطال کنید و یک لیست ابطال مجوز توزیع کنید تا مطمئن شوید تنها کاربران و سیستم های مجاز می توانند از خدماتی استفاده کنند که به CA شما متکی هستند.
پیش نیازها
برای پیروی از این آموزش ، به سرور مجازی CentOS 8 با یک کاربر sudo فعال و غیر ریشه و فایروال تنظیم شده با firewalld نیاز دارید. برای تکمیل تنظیمات می توانید از راهنمای راه اندازی سرور مجازی اولیه با CentOS 8 پیروی کنید.
در این آموزش به این سرور مجازی CA Server گفته خواهد شد.
اطمینان حاصل کنید که CA Server یک سیستم مستقل است. فقط برای ورودی ، امضاء و ابطال درخواست گواهی استفاده می شود. این سرویس نباید خدمات دیگری را اجرا کند ، و در صورت کار نکردن با CA خود ، به صورت آفلاین یا کاملاً خاموش خواهد بود.
نکته: اگر می خواهید درباره امضا و ابطال گواهینامه ها بیاموزید ، آخرین بخش این آموزش اختیاری است. اگر تصمیم گرفتید که مراحل عملی را انجام دهید ، به سرور مجازی دوم CentOS 8 نیاز خواهید داشت یا می توانید از رایانه محلی لینوکس خود که دارای CentOS 8 ، Fedora یا یک مشتق RedHat است ، استفاده کنید.
مرحله 1 – نصب Easy-RSA
اولین کار در این آموزش نصب مجموعه اسکریپت هایeasy-rsa در سرور مجازی CA شما است. easy-rsa ابزاری برای مدیریت مجوز تایید هویت است که شما برای تولید یک کلید خصوصی و گواهی ریشه عمومی از آن استفاده خواهید کرد و سپس از آن برای امضای درخواست مشتری و سرور مجازی هایی که به CA شما اعتماد دارند استفاده خواهید کرد.
بسته easy-rsa به طور پیش فرض در CentOS 8 در دسترس نیست ، بنابراین شما نیاز به فعال کردن بسته های اضافی برای منبع Enterprise Linux (EPEL) دارید. EPEL توسط پروژه Fedora اداره می شود و شامل بسته های غیر استاندارد اما محبوب برای Fedora، CentOS و سایر توزیع های لینوکس است که از قالب بسته RPM استفاده می کنند. به عنوان کاربر sudo غیر ریشه ای که در مراحل اولیه راه اندازی ایجاد کرده اید به سرور مجازی CA خود وارد شوید و دستور زیر را اجرا کنید:
$ sudo dnf install epel-release
از شما خواسته می شود که بسته را دانلود و آن را نصب کنید. y را فشار دهید تا تأیید کنید که می خواهید بسته را نصب کنید.
اکنون بسته ی easy-rsa را نصب کنید ، دوباره در اعلان حاصل y وارد کنید:
$ sudo dnf install easy-rsa
در این مرحله شما همه موارد مورد نیاز خود را تنظیم کرده و آماده استفاده از Easy-RSA هستید. در مرحله بعدی یک زیرساخت کلید عمومی ایجاد می کنید ، و سپس ساخت Certificate Authority را شروع می کنید.
مرحله 2 – تهیه دایرکتوری زیرساخت کلید عمومی
اکنون که easy-rsa را نصب کردید ، زمان آن رسیده است که یک اسکلت زیرساخت کلید عمومی (PKI) را روی سرور مجازی CA ایجاد کنید. اطمینان حاصل کنید که هنوز به عنوان کاربر غیر ریشه خود در سیستم هستید و یک دیرکتوری easy-rsa ایجاد کنید. اطمینان حاصل کنید که برای اجرای هر یک از دستورهای زیر از sudo استفاده نمی کنید ، زیرا کاربر عادی شما باید بدون داشتن امتیاز بالا ، با CA مدیریت و تعامل کند.
$ mkdir ~/easy-rsa
این دستور یک دیرکتوری جدید به نام easy-rsa در پوشه هوم شما ایجاد می کند. ما از این دایرکتوری برای ایجاد پیوندهای نمادین با اشاره به فایل های بسته easy-rsa که در مرحله قبلی نصب کرده ایم استفاده خواهیم کرد. این فایل ها در پوشه / usr / share / easy-rsa / 3 در CA Server قرار دارند.
با دستور ln ، لینک ها را ایجاد کنید:
$ ln -s /usr/share/easy-rsa/3/* ~/easy-rsa/
توجه: در حالی که راهنماهای دیگر ممکن است به شما دستور دهند که فایل های بسته easy-rsa را در دیرکتوری PKI خود کپی کنید ، این آموزش یک رویکرد Symlink را به کار می گیرد. در نتیجه ، هرگونه بروزرسانی در بسته easy-rsa به طور خودکار در اسکریپت های PKI شما منعکس می شود.
برای محدود کردن دسترسی به دیرکتوری جدید PKI ، اطمینان حاصل کنید که فقط مالک می تواند با استفاده از دستور chmod به آن دسترسی داشته باشد:
$ chmod 700 /home/sammy/easy-rsa
سرانجام ، PKI را در دیرکتوری easy-rsa تنظیم کنید:
$ cd ~/easy-rsa
$ ./easyrsa init-pki
Output
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/sammy/easy-rsa/pki
پس از تکمیل این بخش دایرکتوری دارید که شامل تمام فایل هایی است که برای ایجاد یک مجوز تایید اعتبار لازم است. در قسمت بعدی کلید خصوصی و مجوز عمومی را برای CA خود ایجاد خواهید کرد.
مرحله 3 – ایجاد یک Certificate Authority
قبل از اینکه بتوانید کلید خصوصی و گواهی نامه CA خود را ایجاد کنید ، باید فایلی به نام vars را با مقادیر پیش فرض ایجاد و پخش کنید. ابتدا وارد دیرکتوری easy-rsa می شوید ، سپس فایل vars را با nano یا ویرایشگر متن مورد نظر خود ایجاد و ویرایش می کنید.
ویرایشگر متن پیش فرض که با CentOS 8 همراه است vi است. vi یک ویرایشگر متن بسیار قدرتمند است ، اما می تواند برای کاربرانی که فاقد تجربه با آن هستند ، تا حدودی خسته کننده باشد. برای تسهیل ویرایش فایل های پیکربندی روی سرور مجازی CentOS 8 خود ، بهتر است ویرایشگر کاربر پسند دیگری مانند nano را نصب کنید:
$ sudo dnf install nano
هنگامی که از شما خواسته می شود nano را نصب کنید y را زده تا مراحل نصب را ادامه دهید. اکنون آماده ویرایش فایل vars هستید:
$ cd ~/easy-rsa
nano vars
پس از باز شدن فایل ، سطرهای زیر را در آن پیست کنید و هر مقدار هایلایت شده را ویرایش کنید تا اطلاعات سازمانی شما را نشان دهد. بخش مهم در اینجا اطمینان از عدم خالی بودن هر یک از مقادیر است:
~/easy-rsa/vars
set_var EASYRSA_REQ_COUNTRY “US”
set_var EASYRSA_REQ_PROVINCE “NewYork”
set_var EASYRSA_REQ_CITY “New York City”
set_var EASYRSA_REQ_ORG “vpsgol”
set_var EASYRSA_REQ_EMAIL “admin@example.com”
set_var EASYRSA_REQ_OU “Community”
پس از اتمام ، فایل را ذخیره کنید و ببندید. اگر از nano استفاده می کنید ، می توانید این کار را با فشار دادن CTRL + X ، سپس Y و ENTER برای تأیید انجام دهید. اکنون آماده ساخت CA خود هستید.
برای ایجاد جفت کلید عمومی و خصوصی برای مجوز گواهی خود ، دستور ./easy-rsa را بار دیگر اجرا کنید ، این بار با گزینه build-ca:
$ ./easyrsa build-ca
در خروجی ، چند خط در مورد نسخه OpenSSL مشاهده خواهید کرد و از شما خواسته می شود یک عبارت عبور را برای جفت کلید خود وارد کنید. مطمئن باشید که یک عبارت عبور قوی را انتخاب کرده و در جایی امن آن را یادداشت کنید. شما باید هر بار که میخواهید با CA خود ارتباط برقرار کنید ، عبارت عبور را وارد کنید ، به عنوان مثال برای امضا یا ابطال مجوز.
همچنین از شما خواسته می شود نام معمولی (CN) را برای CA خود تأیید کنید. CN نامی است که برای ارجاع این دستگاه در مفهوم مجوز اختیارات استفاده می شود. می توانید هر سری از کاراکترها را برای نام مشترک CA وارد کنید اما به همین دلیل ، برای سادگی، ENTER را فشار دهید تا نام پیش فرض را بپذیرید.
Output
. . .
Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
. . .
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/home/sammy/easy-rsa/pki/ca.crt
توجه: اگر نمی خواهید هر بار که با CA خود ارتباط برقرار می کنید از شما رمزعبور خواسته شود ، می توانید دستور build-ca را با گزینه nopass اجرا کنید ، مانند این:
$ ./easyrsa build-ca nopass
اکنون شما دو فایل مهم دارید – ~ / easy-rsa / pki / ca.crt و ~ / easy-rsa / pki / private / ca.key – که مؤلفه های عمومی و خصوصی یک مجوز تایید را تشکیل می دهد.
• ca.crt فایل گواهینامه عمومی CA است. کاربران ، سرور مجازی ها و مشتری ها از این گواهی نامه استفاده می کنند تا تأیید کنند که آنها بخشی از همان وب قابل اعتماد هستند. هر کاربر و سرور مجازی ی که از CA شما استفاده می کند ، باید یک نسخه از این فایل را داشته باشد. همه طرفها به گواهی عمومی اعتماد خواهند كرد تا اطمینان حاصل كنند كه شخصی در حال جعل سیستم نیست و حمله ای توسط شخص واسط انجام نمی دهد.
• ca.key کلید خصوصی است که CA برای امضای گواهینامه ها برای سرور مجازی ها و مشتری ها استفاده می کند. اگر یک مهاجم به CA شما و به دنبال آن به فایل ca.key شما دسترسی پیدا کند ، باید CA خود را نابود کنید. به همین دلیل فایل ca.key شما فقط باید روی دستگاه CA شما باشد و در حالت ایده آل ، دستگاه CA شما هنگام امضا نکردن درخواست گواهی به عنوان یک اقدام امنیتی اضافی باید به صورت آفلاین نگه داشته شود.
با این کار ، CA شما در جای خود محفوظ و آماده امضای درخواست گواهینامه ، و ابطال گواهینامه ها میباشد.
مرحله 4 – توزیع گواهینامه عمومی Certificate Authority
اکنون CA شما پیکربندی شده و آماده است تا به عنوان یک ریشه اعتماد برای هر سیستمی که می خواهید پیکربندی کنید و از آن استفاده نمایید ، عمل کند. می توانید گواهی CA را به سرور مجازی های OpenVPN ، وب سرور مجازیها ، سرور مجازی های پستی و غیره اضافه کنید. هر کاربر یا سرور مجازی ی که نیاز به تأیید هویت کاربر یا سرور مجازی دیگری در شبکه شما داشته باشد ، باید یک نسخه از فایل ca.crt را به فروشگاه گواهینامه سیستم عامل خود وارد کند.
برای وارد کردن گواهینامه عمومی CA به یک سیستم دیگر لینوکس مانند سرور مجازی دیگر یا یک رایانه محلی ، ابتدا یک نسخه از فایل ca.crt را از سرور مجازی CA خود بگیرید. می توانید از دستور cat برای خروجی آن در یک ترمینال استفاده کنید ، و سپس آن را در یک فایل روی رایانه دوم که وارد کننده گواهینامه است کپی پیست کنید. همچنین می توانید از ابزارهایی مانند scp، rsync برای انتقال فایل بین سیستم ها استفاده کنید. با این وجود ما در این مرحله از کپی پیست با nano استفاده خواهیم کرد زیرا این سیستم بر روی تمام سیستم ها کار می کند.
به عنوان کاربر غیر ریشه خود در CA Server ، دستور زیر را اجرا کنید:
$ cat ~/easy-rsa/pki/ca.crt
خروجی ترمینال شما مشابه زیر خواهد بود:
Output
—–BEGIN CERTIFICATE—–
MIIDSzCCAjOgAwI
AgIUcR9Crsv3FBEujrPZnZnU4nSb5T
MwDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAw
wLRWFzeS1SU0EgQ0EwHh
cNMjAwMzE4MDMxNjI2WhcNMzAw
. . .
. . .
—–END CERTIFICATE—–
کپی همه چیز ، از جمله خطوط —–BEGIN CERTIFICATE—– و —–END CERTIFICATE—– را کپی کنید.
در سیستم دوم لینوکس از nano یا ویرایشگر متن مورد نظر خود برای باز کردن فایلی به نام /tmp/ca.crt استفاده کنید:
$ nano /tmp/ca.crt
محتویاتی را که به تازگی از سرور مجازی CA کپی کرده اید در ویرایشگر پیست کنید. پس از اتمام ، فایل را ذخیره کنید و ببندید. اگر از نانو استفاده می کنید ، می توانید این کار را با فشار دادن CTRL + X ، سپس Y و ENTER برای تأیید انجام دهید.
اکنون که یک نسخه از ca.crt را در سیستم لینوکس دوم خود دارید ، زمان آن است که گواهی را وارد فروشگاه گواهینامه سیستم عامل خود کنید.
در CentOS ، Fedora یا سایر سیستمهای مشتق شده RedHat لینوکس دستورات زیر را برای وارد کردن گواهینامه اجرا می کند:
CentOS, Fedora, RedHat distributions
$ sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
$ update-ca-trust
برای وارد کردن گواهینامه سرور مجازی CA در سیستم مبتنی بر Debian یا Ubuntu ، محتویات فایل را درست مانند مثال قبلی در فایلی به نام /tmp/ca.crt. بر روی سیستم کپی و پیست کنید. در مرحله بعد گواهینامه را در /usr/local/share/ca-certificates/ کپی کنید ، سپس دستور update-ca-certificates را اجرا کنید.
Debian and Ubuntu derived distributions
$ sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
$ update-ca-certificates
اکنون سیستم دوم لینوکس شما به گواهینامه هایی که توسط سرور مجازی CA امضا شده است اعتماد خواهد کرد.
توجه: اگر از CA خود با سرور مجازی های وب استفاده می کنید و از Firefox به عنوان یک مرورگر استفاده می نمایید ، لازم است مجوز عمومی ca.crt را به طور مستقیم به Firefox وارد کنید. Firefox از فروشگاه مجوز سیستم عامل محلی استفاده نمی کند. برای جزئیات بیشتر در مورد چگونگی افزودن گواهی نامه CA به Firefox ، لطفاً این مقاله پشتیبانی را از موزیلا در مورد تنظیم مجوزهای تایید هویت (CA) در Firefox ببینید.
اگر از CA خود برای ادغام با محیط ویندوز یا رایانه های دسکتاپ استفاده می کنید ، لطفاً نحوه استفاده از certutil.exe برای نصب یک گواهی CA را مشاهده کنید.
اگر از این آموزش به عنوان پیش نیاز آموزش دیگری استفاده می کنید ، یا با نحوه ثبت نام و ابطال گواهینامه ها آشنا هستید ، می توانید در اینجا متوقف شوید. اگر می خواهید در مورد نحوه ثبت نام و ابطال گواهینامه ها اطلاعات بیشتری کسب کنید ، در قسمت اختیاری زیر هر فرآیند با جزئیات توضیح داده خواهد شد.
(اختیاری) – ایجاد درخواست های مربوط به امضای گواهی و ابطال مجوزها
بخش های بعدی این آموزش اختیاری هستند. اگر تمام مراحل قبلی را انجام داده اید ، باید یک مجوز گواهی کاملاً پیکربندی شده و کاربردی داشته باشید که بتوانید به عنوان پیش نیاز سایر آموزش ها از آنها استفاده کنید. می توانید فایل ca.crt CA خود را وارد کرده و گواهینامه هایی را که توسط CA شما امضا شده است تأیید کنید.
اگر می خواهید در مورد نحوه امضای درخواست گواهینامه و چگونگی ابطال گواهینامه ها تمرین کرده و اطلاع پیدا کنید ، در این بخش های اختیاری نحوه عملکرد هر دو فرآیند توضیح داده می شود.
(اختیاری) – ایجاد و امضای درخواست گواهی تمرینی
اکنون که یک CA آماده استفاده دارید ، می توانید با تهیه یک کلید خصوصی و درخواست گواهینامه برای آشنایی با روند امضا و توزیع ، تمرین کنید.
یک درخواست امضای گواهی (CSR) شامل سه بخش است: کلید عمومی ، شناسایی اطلاعات مربوط به سیستم درخواست کننده ، و امضای خود درخواست ، که با استفاده از کلید خصوصی طرف درخواست کننده ایجاد می شود. کلید خصوصی مخفی نگه داشته می شود و برای رمزگذاری اطلاعات استفاده می شود که هر کس دارای مجوز عمومی امضا شده باشد می تواند رمزگشایی کند.
مراحل زیر بر روی سیستم دوم لینوکس شما که دارای CentOS ، Fedora یا توزیع دیگر لینوکس RedHat است ، اجرا می شود. این می تواند یک سرور مجازی از راه دور دیگر یا یک دستگاه محلی لینوکس مانند لپ تاپ یا رایانه دستکتاپ باشد. از آنجا که easy-rsa به طور پیش فرض در همه سیستم ها در دسترس نیست ، ما از ابزار Openssl برای ایجاد یک کلید خصوصی و مجوز استفاده خواهیم کرد.
Openssl معمولاً به طور پیش فرض در اکثر توزیع های لینوکس نصب می شود ، اما فقط برای اطمینان ، دستور زیر را روی سیستم خود اجرا کنید:
$ sudo dnf install openssl
هنگامی که از شما خواسته می شود openssl را وارد کنید y را برای ادامه مراحل نصب وارد کنید. اکنون آماده هستید تا یک CSR عملی را با Openssl ایجاد کنید.
اولین قدمی که باید برای ایجاد CSR تکمیل کنید ، تولید یک کلید خصوصی است. برای ایجاد یک کلید خصوصی با استفاده از Openssl ، یک دایرکتوری practice-csr ایجاد کرده و سپس یک کلید را در داخل آن ایجاد کنید. ما این درخواست را برای سرور مجازی تخیلی به نام sammy-server ایجاد خواهیم کرد ، برخلاف ایجاد گواهی که برای شناسایی کاربر یا CA دیگر استفاده می شود.
$ mkdir ~/practice-csr
$ cd ~/practice-csr
$ openssl genrsa -out sammy-server.key
Output
Generating RSA private key, 2048 bit long modulus (2 primes)
. . .
. . .
e is 65537 (0x010001)
اکنون که یک کلید خصوصی دارید، دوباره با استفاده از ابزار Openssl می توانید CSR مربوطه را ایجاد کنید. از شما خواسته می شود تعدادی از فیلدها مانند کشور ، ایالت و شهر را پر کنید. اگر می خواهید یک زمینه را خالی بگذارید ، می توانید . وارد کنید، اما توجه داشته باشید که اگر این یک CSR واقعی بود ، بهتر است از مقادیر صحیح برای مکان و سازمان خود استفاده کنید:
$ openssl req -new -key sammy-server.key -out sammy-server.req
Output
. . .
—–
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:New York
Locality Name (eg, city) [Default City]:New York City
Organization Name (eg, company) [Default Company Ltd]:vpsgol
Organizational Unit Name (eg, section) []:Community
Common Name (eg, your name or your server’s hostname) []:sammy-server
Email Address []:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
اگر دوست دارید بجای اعلان تعاملی ، آن مقادیر را به صورت خودکار به عنوان بخشی از فراخوانی Openssl اضافه کنید ، می توانید آرگومان -subj را به OpenSSL منتقل کنید. حتماً مقادیر هایلایت شده را ویرایش کنید تا با مکان تمرین ، سازمان و نام سرور مجازی شما مطابقت داشته باشد:
$ openssl req -new -key sammy-server.key -out sammy-server.req -subj \
$ /C=US/ST=New\ York/L=New\ York\ City/O=vpsgol/OU=Community/CN=sammy-server
برای تأیید محتویات CSR ، می توانید یک فایل درخواست با Openssl را بخوانید و فلیدهای داخل را بررسی کنید:
$ openssl req -in sammy-server.req -noout -subject
Output
subject=C = US, ST = New York, L = New York City, O = vpsgol, OU = Community, CN = sammy-s
هنگامی که از موضوع درخواست گواهینامه تمرین خود راضی هستید ، فایل sammy-server.req را با استفاده از scp در سرور مجازی CA خود کپی کنید:
در این مرحله شما یک درخواست امضای گواهی را برای سرور مجازی تخیلی به نام sammy-server ایجاد کردید. در دنیای واقعی ، این درخواست می تواند چیزی مانند یک وب سرور مجازی در حال توسعه یا مرحله بندی باشد که برای آزمایش به یک گواهینامه TLS نیاز دارد. یا می تواند از یک سرور مجازی OpenVPN که متقاضی صدور گواهینامه است ، نشات بگیرد تا کاربران بتوانند به یک VPN وصل شوند. در مرحله بعدی ، ما با استفاده از کلید خصوصی سرور مجازی CA به امضای درخواست امضای گواهینامه می پردازیم.
)اختیاری) – امضای CSR
در مرحله قبل ، یک درخواست گواهی عملی و کلید برای سرور مجازی تخیلی ایجاد کردید. آن را در دایرکتوری / tmp روی سرور مجازی CA خود کپی کرده اید ، که از فرایندی تقلید میکند که شما استفاده میکنید. آن هم در صورتی که مشتری یا سرور مجازی های واقعی برای شما درخواست امضای CSR ارسال کنند،.
در ادامه سناریوی تخیلی ، اکنون سرور مجازی CA نیاز به وارد کردن گواهی تمرینی و امضای آن دارد. هنگامی که یک درخواست گواهی توسط CA تأیید شود و دوباره به یک سرور مجازی ارسال شود ، مشتریانی که به اختیارات گواهینامه اعتماد دارند نیز می توانند به گواهی تازه صادر شده اعتماد کنند.
از آنجا که ما در PKI CA که در آن ابزار easy-rsa در دسترس است فعالیت خواهیم کرد ، مراحل امضا از ابزار easy-rsa برای آسان تر کردن کارها استفاده خواهد کرد ، برخلاف استفاده مستقیم از Openssl مانند آنچه در مثال قبلی انجام دادیم.
اولین قدم برای امضای CSR تخیلی وارد کردن درخواست گواهینامه با استفاده از اسکریپت easy-rsa است:
$ cd ~/easy-rsa
$ ./easyrsa import-req /tmp/sammy-server.req sammy-server
Output
. . .
The request has been successfully imported with a short name of: sammy-server
You may now use this name to perform signing operations on this request.
اکنون می توانید با اجرای اسکریپت easyrsa با گزینه sign-req ، درخواست را امضا کنید و به دنبال آن نوع درخواست و نام مشترک که در CSR گنجانده شده است. نوع درخواست می تواند client ، server یا ca مختلف باشد. از آنجا که ما با یک گواهینامه برای سرور مجازی تخیلی تمرین می کنیم ، حتما از نوع درخواست server استفاده کنید:
$ ./easyrsa sign-req server sammy-server
در خروجی ، از شما خواسته می شود که تأیید کنید که این درخواست از یک منبع قابل اعتماد تهیه شده است. برای تأیید ، yes را تایپ کرده و سپس ENTER را فشار دهید:
Output
You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
Request subject, to be signed as a server certificate for 3650 days:
subject=
commonName = sammy-server
Type the word ‘yes’ to continue, or any other input to abort.
Confirm request details: yes
. . .
Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt
اگر کلید CA خود را رمزگذاری کردید ، در این مرحله از شما خواسته می شود رمزعبور خود را وارد کنید.
با اتمام این مراحل ، شما با استفاده از کلید خصوصی سرور مجازی CA در /home/sammy/easy-rsa/pki/private/ca.key ، sammy-server.req CSR را امضا کردید. فایل sammy-server.crt حاصل ، حاوی کلید رمزگذاری عمومی سرور مجازی تمرینی و همچنین امضای جدیدی از سرور مجازی CA است. نکته امضا این است که به هر کسی که به CA اعتماد دارد می گوید که می توانند به گواهی سرور مجازی sammy نیز اعتماد کنند.
اگر این درخواست برای سرور مجازی واقعی مانند سرور مجازی وب یا سرور مجازی VPN باشد ، آخرین مرحله روی سرور مجازی CA توزیع فایل های جدید sammy-server.crt و ca.crt از سرور مجازی CA به سرور مجازی از راه دوری است که درخواست CSR را داده است:
$ scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
$ scp pki/ca.crt sammy@your_server_ip:/tmp
در این مرحله ، می توانید از گواهی صادر شده با چیزی مانند سرور مجازی وب ، VPN ، ابزار مدیریت پیکربندی ، سیستم پایگاه داده یا برای اهداف تأیید اعتبار مشتری استفاده کنید.
(اختیاری) – ابطال مجوز
گاهی اوقات ، برای جلوگیری از استفاده کاربر یا سرور مجازی ، ممکن است نیاز به ابطال مجوز باشد. شاید لپ تاپ شخصی به سرقت رفته باشد ، سرور مجازی وب به خطر بیفتد یا یک کارمند یا پیمانکار از سازمان شما خارج شده باشد.
برای ابطال مجوز ، روند کلی این مراحل را دنبال کنید:
1- گواهی را با دستور ./easyrsa revoke client_name باطل کنید.
2- با دستور ./easyrsa gen-crl یک CRL جدید ایجاد کنید.
3- فایل crl.pem به روز شده را به سرور مجازی یا سرور مجازی هایی که به CA شما متکی هستند منتقل کنید و در آن سیستم ها آن را به دایرکتوری یا دایرکتوری های مورد نیاز برای برنامه هایی که به آن ارجاع میدهند ، کپی کنید.
4- سرویس هایی را که از CA و فایل CRL استفاده می کنند را مجدداً راه اندازی کنید.
می توانید از این فرآیند برای ابطال هرگونه گواهی که قبلاً در هر زمان صادر کرده اید استفاده کنید. در بخش های بعدی به تفصیل در مورد هر بخش توضیح خواهیم داد ، و از دستور لغو شروع میکنیم.
ابطال یک گواهی
برای ابطال مجوز ، به دیرکتوری easy-rsa در سرور مجازی CA خود بروید:
$
cd ~/easy-rsa
در مرحله بعد ، اسکریپت easyrsa را با گزینه revoke اجرا کنید ، و سپس نام مشتری را که می خواهید لغو کنید ، وارد کنید. پس از مثال عملی فوق ، نام مشترک معمول sammy-server است:
$ ./easyrsa revoke sammy-server
با این کار از شما خواسته می شود با وارد کردن بله ، این لغو را تایید کنید:
Output
Please confirm you wish to revoke the certificate with the following subject:
subject=
commonName = sammy-server
Type the word ‘yes’ to continue, or any other input to abort.
Continue with revocation: yes
. . .
Revoking Certificate 8348B3F146A765581946040D5C4D590A
. . .
به مقدار هایلایت شده در خط Revoking Certificate توجه کنید. این مقدار شماره سریال منحصر به فرد گواهی است که ابطال می شود. اگر می خواهید لیست ابطال را در آخرین مرحله از این بخش بررسی کنید تا تأیید کنید که گواهی در آن قرار دارد ، به این مقدار نیاز خواهید داشت.
پس از تأیید عمل ، CA گواهی را ابطال می کند. با این حال ، سیستم های از راه دور که به CA متکی هستند ، هیچ راهی برای بررسی اینکه آیا گواهینامه ای ابطال شده است یا خیر، ندارند. کاربران و سرور مجازی ها تا زمانی که لیست ابطال مجوز گواهی CA (CRL) در کلیه سیستمهایی که به CA متکی هستند توزیع میشود، قادر خواهند بود از این گواهی استفاده کنند.
در مرحله بعد ، شما یک CRL تولید می کنید یا یک فایل crl.pem موجود را به روز می کنید.
ایجاد یک لیست ابطال مجوزها
اکنون که یک مجوز را ابطال کرده اید ، لازم است لیستی از گواهی های ابطال شده در سرور مجازی CA خود را به روز کنید. هنگامی که یک لیست ابطال به روز شده دارید ، می توانید بگویید که کاربران و سیستم های دارای گواهی معتبر در CA شما هستند.
برای تولید CRL ، دستور easy-rsa را با گزینه gen-crl در حالی که هنوز در دیرکتوری ~ / easy-rsa هستید اجرا کنید:
$ ./easyrsa gen-crl
اگر هنگام ایجاد فایل ca.key از یک عبارت عبور استفاده کرده اید ، از شما خواسته می شود که آن را وارد کنید. دستور gen-crl یک فایل با نام crl.pem تولید می کند و حاوی لیست به روز شده گواهی های ابطال شده برای آن CA است.
در مرحله بعد باید هر بار که دستور gen-crl را اجرا میکنید، فایل crl.pem به روز شده را به کلیه سرور مجازی ها و مشتریانی که به این CA متکی هستند منتقل کنید. در غیر این صورت ، مشتریان و سیستم ها همچنان می توانند به خدمات و سیستمهایی که از CA شما استفاده می کنند ، دسترسی پیدا کنند ، زیرا این سرویس ها باید درباره وضعیت ابطال شده گواهی اطلاعات داشته باشند.
انتقال لیست ابطال مجوزها
اکنون که CRL را در سرور مجازی CA خود ایجاد کرده اید ، باید آن را به سیستم های از راه دور که به CA شما متکی هستند منتقل کنید. برای انتقال این فایل به سرور مجازی های خود ، از دستور scp استفاده کنید.
توجه: این آموزش نحوه تولید و توزیع دستی CRL را توضیح می دهد. در حالی که روش های قوی تر و خودکارتری برای توزیع و بررسی لیست های ابطال مانند OCSP-Stapling وجود دارد ، اما پیکربندی این روشها خارج از محدوده این مقاله است.
اطمینان حاصل کنید که به عنوان کاربر غیر ریشه خود وارد سرور مجازی CA خود شده اید و دستور زیر را اجرا کرده اید، فقط اینکه به جای IP_server_ip ، نام IP DNS یا سرور مجازی خود را جایگزین کنید:
$ scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp
اکنون که فایل روی سیستم از راه دور قرار دارد ، آخرین مرحله به روزرسانی تمام سرویس ها با نسخه جدید لیست ابطال است.
به روزرسانی خدماتی که از CRL پشتیبانی می کنند
لیست کردن مراحل مورد نیاز برای به روزرسانی خدماتی که از فایل crl.pem استفاده می کنند فراتر از محدوده این آموزش است. به طور کلی باید فایل crl.pem را در محلی که سرویس انتظار دارد کپی کنید و سپس با استفاده از systemctl مجدداً آن را راه اندازی کنید.
پس از به روزرسانی سرویس های خود با فایل جدید crl.pem ، سرویس های شما قادر خواهند بود اتصالات مشتری یا سرور مجازی هایی را که از گواهی ابطال شده استفاده می کنند را رد کنند.
بررسی و تأیید محتوای CRL
اگر می خواهید یک فایل CRL را بررسی کنید ، به عنوان مثال برای تأیید لیستی از گواهینامه های ابطال شده ، از دستور Openssl زیر در دیرکتوری راهنمای easy-rsa در سرور مجازی CA خود استفاده کنید:
$ cd ~/easy-rsa
$ openssl crl -in pki/crl.pem -noout -text
همچنین می توانید این دستور را روی هر سرور مجازی یا سیستمی که ابزار Openssl را با یک نسخه از فایل crl.pem نصب کرده اجرا کنید. به عنوان مثال ، اگر فایل crl.pem را به سیستم دوم خود منتقل کردید و می خواهید تأیید کنید که گواهی sammy-server ابطال شده است ، می توانید یک دستور Openssl را مانند زیر استفاده کنید، فقط شماره سریالی که قبلا در هنگام ابطال مجوز یادداشت کردید را به جای شماره سریال هایلایت شده در این جا قرار دهید:
$ openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output
Serial Number: 8348B3F146A765581946040D5C4D590A
Revocation Date: Apr 1 20:48:02 2020 GMT
توجه کنید که چگونه دستور grep برای بررسی شماره سریال منحصر به فرد مورد نظر در مرحله ابطال مورد استفاده قرار می گیرد. اکنون می توانید محتویات لیست ابطال مجوزهای خود را در مورد هر سیستمی که به آن متکی است برای محدود کردن دسترسی به کاربران و خدمات ، تأیید کنید.
نتیجه
در این آموزش شما با استفاده از بسته Easy-RSA بر روی یک سرور مجازی مستقل CentOS 8 یک مجوز خصوصی ایجاد کرده اید. آموختید که چگونه مدل اعتماد بین طرفینی که به CA اعتماد می کنند ، کار می کند. همچنین یک درخواست ثبت نام گواهینامه (CSR) را برای یک سرور مجازی تمرینی ایجاد و امضا کردید ، و سپس یاد گرفتید که چگونه یک گواهی را لغو کنید. سرانجام ، آموختید که چگونه یک لیست ابطال مجوز (CRL) برای هر سیستمی که به CA شما متکی است را تولید و توزیع کنید تا اطمینان حاصل شود که کاربران یا سرور مجازی هایی که نباید به خدمات دسترسی داشته باشند از انجام این کار منع می شوند.
اکنون می توانید مجوزهایی را برای کاربران صادر کرده و از آنها با خدماتی مانند OpenVPN استفاده کنید. همچنین می توانید از CA خود برای پیکربندی توسعه و تنظیم سرور مجازی های وب با گواهی نامه ها برای تأمین محیط های غیر تولیدی استفاده کنید. استفاده از CA با گواهینامه های TLS در حین توسعه می تواند اطمینان حاصل کند که کد و محیط شما تا حد ممکن با محیط تولید شما مطابقت دارند.
اگر می خواهید در مورد نحوه استفاده از OpenSSL بیشتر بیاموزید ، ملزومات OpenSSL ما: کار با گواهی های SSL ، کلیدهای خصوصی و آموزش CSR اطلاعات اضافی زیادی دارند که به شما کمک می کند تا با اصول OpenSSL بیشتر آشنا شوید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت – اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8 – تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04 – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8 – بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8 – نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 – نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8 – راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8 – چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10 – استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18 – نحوه نصب Git در CentOS 8
نصب Git در Debian 10 – نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10 – نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10 – نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18 – نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10 – راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18 – نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در 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/