mtls
إعداد وتكوين شهادة mTLS لـ Platform OneEntry باستخدام الرموز وmTLS، بالإضافة إلى نشر التطبيق على خادم مع Nginx وDocker وGitLab
الجزء 1: إعداد mTLS
حماية واجهة برمجة التطبيقات
- باستخدام الرمز: قم بإنشاء رمز في إعدادات OneEntry وأضفه إلى رؤوس الطلبات مع معلمة 'x-app-token'، حيث تكو ن القيمة هي الرمز.
- باستخدام mTLS: قم بتمكين خيار mTLS في لوحة التحكم الخاصة بك في OneEntry وقم بإنشاء الشهادة في إعدادات OneEntry.
إعداد الشهادة
- في لوحة التحكم الخاصة بك، انتقل إلى علامة التبويب 'الوصول' وانتقل من الرمز إلى mTLS.
- قم بإنشاء شهادة جديدة في OneEntry ('الإعدادات' -> 'شهادات التطبيقات' -> 'إنشاء شهادة جديدة').
- قم بتنزيلها إلى جهاز الكمبيوتر الخاص بك واستخراجها إلى مجلد 'cert' في جذر مشروعك.
إعداد البيئة المحلية (باستخدام ReactJS كمثال)
- قم بتنزيل ملف setupProxy.js واحفظه في مجلد 'src'.
- قم بتحرير معلمة 'target'، وحدد عنوان مشروعك.
- قم بتثبيت حز مة 'http-proxy-middleware': 'npm install http-proxy-middleware'.
- ابدأ التطبيق.
الجزء 2: تكوين الخادم
إعداد الخادم
- تحديث معلومات المستودع: `apt update`.
- إضافة مستودع Docker وتثبيت الحزم: `apt install nginx certbot docker-ce pwgen`.
تكوين UFW
- حظر جميع الاتصالات الواردة: `ufw default deny incoming`.
- السماح بجميع الاتصالات الصادرة: `ufw default allow outgoing`.
- السماح بالاتصالات الواردة عبر TCP على المنافذ 22 و80 و443: `ufw allow 22,80,443/tcp`.
تكوين SSH
- تحرير تكوين خادم SSH: `nano /etc/ssh/sshd_config`.
- تعيين `PasswordAuthentication no`.
- إعادة تشغيل خادم SSH: `systemctl restart ssh`.
تكوين Nginx
- إزالة ملف التكوين الافتراضي: `rm /etc/nginx/sites-available/default`
- إنشاء ملف تكوين جديد: `nano /etc/nginx/sites-available/my_app`.
- قم بتنزيل وتحرير تكوين Nginx من OneEntry، واستبدل "your_domain.com" بنطاقك.
- ثم قم بتشغيل الأمر: ‘ln -s /etc/nginx/sites-available/my_app /etc/nginx/sites-enabled'، واستبدل "my_app" باسم ملف التكوين الخاص بك.
- إصدار شهادات SSL باستخدام Certbot: `certbot certonly --webroot -w /var/www/html -d your_domain`
- تحقق من تجديد الشهادة التلقائي: `certbot renew --dry-run`.
- تحرير مهمة cron الخاصة بـ Certbot لإعادة تحميل تكوين Nginx تلقائيًا بعد إصدار الشهادات: ‘nano /etc/cron.d/certbot'، واستبدل السطر الأخير بـ: `echo "0 */12 * * * root certbot -q renew && nginx -s reload" > /etc/cron.d/certbot`
- قم بإلغاء تعليق الأسطر في ملف التكوين 'nano /etc/nginx/sites-available/my_app' (حيث 'my_app' هو اسم ملف التكوين الخاص بك).
- تحقق من تكوين Nginx: `nginx -t`
- أعد تحميل Nginx بعد كل تغيير: `nginx -s reload`.
الجزء 3: نشر التطبيق باستخدام GitLab وGitHub
GitHub
إنشاء مستخدم جديد لـ GitHub Runner
- قم بإنشاء كلمة مرور: 'pwgen -s 15 1'
- إنشاء مستخدم جديد: 'useradd -m github-runner'
- تعيين كلمة مرور له: 'passwd github-runner'
- إضافة المستخدم الجديد إلى المجموعات: 'usermod -aG docker github-runner' و 'usermod -aG sudo github-runner'.
- تغيير الصدفة لمستخدم GitHub Runner: 'chsh -s /bin/bash github-runner'
- التبديل إلى المستخدم الجديد: 'sudo su - gitlab-runner'.
تكوين GitHub Runner
- إنشاء GitHub Runner: انتقل إلى إعدادات المستودع الخاص بك، انقر على 'الإجراءات' واختر 'Runners'، ثم انقر على 'New self-hosted runner'.
- اتبع التعليمات في كتلة 'تنزيل' وأول أمر في كتلة 'تكوين'.
- إضافة Runner إلى بدء التشغيل التلقائي للنظام: 'sudo ./svc.sh install'. ستحتاج إلى إدخال كلمة المرور التي تم إنشاؤها سابقًا.
- بدء تشغيل Runner: 'sudo ./svc.sh start'.
- انتقل إلى قسم 'الإجراءات'، انقر على 'Runners'، وتأكد من أن 'Runner' قيد التشغيل.
- العودة إلى المستخدم 'root'.
- إنشاء دليل عمل: 'mkdir -p /var/apps/frontend'
- تعيين الأذونات للمستخدم 'github-runner': 'chown -R github-runner:docker /var/apps/frontend'.
تكوين متغيرات البيئة في GitHub
- إنشاء المتغيرات `DOMAIN`، `MTLS_USER_CERT`، و`MTLS_USER_KEY` في مستودع GitHub الخاص بك ('الإعدادات' -> 'الأسرار والمتغيرات').
- إنشاء شهادة في OneEntry، أضف الشهادة والمفتاح إلى المتغيرات. في متغير `DOMAIN`، حدد عنوان مشروعك بدون https.
- قم بتنزيل الملف docker-compose.yml وأرشيفين .github و .docker.
- ضع docker-compose.yml و .github.zip و .docker.zip في المجلد الجذر لمشروعك واستخرج الأرشيفات (يمكنك حذف الأرشيفات بعد الاستخراج).
- قم بتشغيل أمر الدفع في مشروعك.
- تحقق من العملية في علامة التبويب 'الإجراءات'.
- تحقق من إمكانية الوصول إلى التطبيق في المتصفح.
GitLab
تسجيل GitLab Runner
- تحديد العلامات 'docker، frontend'.
- انتقل إلى 'الإعدادات -> CI/CD -> Runners' وانقر على زر 'New project runner'.
- انتقل إلى الدليل الذي تم إنشاؤه: `cd /var/apps/gitlab-runner`.
- قم بتشغيل الأمر لبدء عملية التسجيل: `docker compose run runner register`.
- أدخل عنوان GitLab، على سبيل المثال، https://gitlab.com/.
- احصل على رمز التسجيل من GitLab (في قسم 'Runners' من المشروع) والصقه في الطرفية.
- حدد المنفذ كـ 'docker'.
- حدد الصورة الافتراضية كـ docker:20.10.16.
إعداد متغيرات البيئة في GitLab
- إنشاء المتغيرات `DOMAIN`، `MTLS_USER_CERT`، و`MTLS_USER_KEY` في مستودع GitLab الخاص بك ('الإعدادات' -> 'CI/CD' -> 'المتغيرات').
- إنشاء شهادة في OneEntry، أضف الشهادة والمفتاح إلى المتغيرات، وحدد عنوان مشروعك بدون https في متغير `DOMAIN`.
- قم بتنزيل الملفات docker-compose.yml، .gitlab-ci.yml، وأرشيف .docker، ضع الملفات في جذر مشروعك، واستخرج الأرشيفات (يمكنك حذف الأرشيفات بعد الاستخراج).