درمجموع CA و یا همان Certificate Authority به سرویسی میگویند که وظیفه دادن ایجاد Certificate و یا گواهیهای دیجیتال را برای یک سازمان و یا کاربر خاصی دارند. این سرویس جز ایجاد Digital Certificate وظایف و کارایی های دیگری را نیز برعهده دارد که به شرح زیر هستند:
این گواهیهای دیجیتال همانند یک مجوز در دنیای واقعی در دنیای اینترنت فعالیت میکنند و موارد مختلفی را برعهده دارند و تقریبا استفاده های بسیاری دارند
وب سایت های مختلفی هستند که از این گواهیهای دیجیتال استفاده میکنند و با پرداخت مبالغی این گواهیها را برای بالا بردن میزان امنیت وب سایت استفاده میکنند
دومثال از این نوع CA:
نکته: از CA های درون سازمانی و ایجاد شده توسط سرویس های شخصی نمیتوان برای وب سایت ها استفاده کرد و حتما نیاز به خرید یک گواهی معتبر میباشد
از این گواهیهای دیجیتال درارتباطات Tunneling استفاده های بسیاری میشود زیرا موجب بالا رفتن امنیت و پیاده سازی مکانیزم های زیر میشود:
درواقع CA ها به دو دسته خصوصی و عمومی تقسیم میشوند
Private CA:
در واقع این CA ها وظیفه ایجاد گواهی های درون سازمانی را دارند و ما توانایی استفاده از آن برای قسمت همچون وب سایت هارا نداریم ولی در قسمت های دیگه ایی مثله ارتباطات Tunneling و احراض هویت کاربران توانایی استفاده از آن را داریم
Public CA:
این CA ها در سطح وب و اینترنت فعالیت دارند و ما از طریق گواهی های که این CA ها برایمان ایجاد میسازند میتوانیم فرایند کارمان را بر روی اینترنت انجام دهیم و توانایی استفاده از آن بر روی وب سایت های خودرا نیز داریم
برای راه اندازی یک CA در لینوکس میبایست از openSSL که یک Library متن باز به منظور رمزنگاری میباشد و از نرم افزار و پروتکل های مختلف ارتباطاتی به منظور جلوگیری از حملات مختلف و استراق سمع محافظت و جلوگیری میکند. این Library بر روی اکثر وب سایت های بزرگ Https مورد استفاده قرار گرفته است و از توانایی اجرای پروتکل های رمزنگاری SSL و TLS را فراهم میسازد
➜ ~ wget -c https://www.openssl.org/source/openssl-1.0.2p.tar.gz ➜ ~ tar -xzvf openssl-1.0.2p.tar.gz ➜ ~ cd openssl-1.0.2p/ ➜ ~ ./config ➜ ~ make ➜ ~ make test ➜ ~ sudo make install
نصب از طریق مخازن Apt
sudo apt-get install openssl
پس از طی کردن فرایند بالا میتوانید openSSL را دستور زیر در سیستم پیدا کنید:
➜ ~ whereis openssl openssl: /usr/bin/openssl /usr/include/openssl l /usr/share/man/man1/openssl.1ssl.gz
تست openSSL و گرفتن ورژن آن:
➜ ~ /usr/bin/openssl version OpenSSL 1.1.1f 31 Mar 2020
➜ ~ openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12
➜ ~openssl genrsa -out PrivateKeyForCA.key 2048 ➜ ~openssl req -x509 -new -nodes -key PrivateKeyForCA.key -sha256 -days 365 -out testCA.crt -config localhost.cnf -extensions v3_ca -subj "/CN=SocketTools Test CA"
➜ ~openssl x509 -text -noout -in certificate.pem
➜ ~openssl req -new -key privkey.pem -out CSR.csr