در این مقاله با قسمت دوم آموزش راه اندازی احراز حویت کاربران با استفاده از certificate در nginx درخدمت شما هستیم.
برای خواندن قسمت اول این مقاله به اینجا مراجعه کنید.
۲- صادرکردن certificate و key مربوط به کاربر
برای این منظور ابتدا مسیری میسازیم تا certificate های کاربران را در آن ذخیره کنیم. دستئر زیر را اجرا میکنیم.
Mkdir /data/nowlearn.ir/CA/certs/users
سپس اقدام به ایجاد کلید خصوصی و کلید عمومی کابر میکنیم. (این مراحل بسیار شبیه به مراحل مربوط به ساختن کلید های CA است)
برای ساختن کلید خصوصی کاربر دستور زیر را اجرا مکنیم .
openssl genrsa –des3 –out /data/nowlearn.ir/CA/certs/users/mohammad.key 1024 –config /data/nowlearn.ir/CA/openssl.cnf
بعد از اجرای مرحله قبل نوبت به ایجاد یک درخواست امضا کردن certificate یا csr برای کاربر میرسد. برای این منظور دستور زیر را اجرا میکنیم .
openssl req –new –key /data/nowlearn.ir/CA/certs/users/mohammad.key \
-out /data/nowlearn.ir/CA/certs/users/mohammad.csr \
-config /data/nowlearn.ir/CA/openssl.cnf
بعد از اینکه csr کاربر را صادر کردیم نوبت به این میرسد که آن را با استفاده از کلید CA امضا کنیم . برای این منظور دستور زیر را اجرا میکنیم.
Openssl x509 –req –days 3560 –in /data/nowlearn.ir/CA/certs/users/mohammad.csr \
-CA /data/nowlearn.ir/CA/certs/cacert.pem \
-Cakey /data/nowlearn.ir/CA/private/cakey.pem \
-Caserial /data/nowlearn.ir/CA/serial \
-Cacreateserial \
-out /data/nowlearn.ir/CA/certs/users/mohammad.crt \
-config /data/nowlearn.ir/CA/openssl.cnf
بعد از اجرای دستور بالا باید خروجی مانند زیر ببینید.
Signature ok
subject=/C=IR/ST=TEH/L=Tehran/O=nowlearn.ir/CN=Mohammad Reza Abadi/emailAddress=info@nowlearn.ir
Getting CA Private Key
Enter pass phrase for /data/nowlearn.ir/CA/private/cakey.pem:
بعد از انجام مراحل بالا ما یک کلید و یک certificate برای کاربرمان داریم و برای اینکه بتوانیم آن را به کاربر بدهیم باید آن را به فرمت p12 تبدیل کنیم.
برای این منظور از دستور زیر استفاده میکنیم.
Openssl pkcs12 –export –clcerts –in /data/nowlearn.ir/CA/certs/users/mohammad.crt \
-inkey /data/nowlearn.ir/CA/certs/users/mohammad.key \
-out /data/nowlearn.ir/CA/certs/users/mohammad.p12 \
-config /data/nowlearn.ir/CA/openssl.cnf
بعد از اجرای دستور بالا ما یک فایل به نام mohammad.p12 داریم که با کلمه عبور محافظت شده و میتوانیم این فایل را به کاربر ارائه کنیم.