عميل بروتوكول ACME مكتوب فقط بلغة Shell (Unix Shell).
التنفيذ الكامل لبروتوكول ACME.
دعم شهادات ECDSA
دعم شهادات SAN وأحرف البدل
بسيطة وقوية وسهلة الاستخدام للغاية. ما عليك سوى 3 دقائق لتعلمها.
متوافق مع Bash وDash وSh.
مكتوب بالكامل بلغة Shell دون الاعتماد على لغة بايثون.
برنامج نصي واحد فقط لإصدار شهاداتك وتجديدها وتثبيتها تلقائيًا.
لا يتطلب الوصول إلى root/sudoer
.
عامل ميناء جاهز
IPv6 جاهز
إشعارات وظيفة Cron للتجديد أو الخطأ وما إلى ذلك.
ربما يكون هذا هو easiest & smartest
برنامج نصي لإصدار الشهادات المجانية وتجديدها تلقائيًا.
ويكي: https://github.com/acmesh-official/acme.sh/wiki
لمحبي دوكر: acme.sh؟ عامل ميناء
تويتر: @neilpangxa
FreeBSD.org
روبي-china.org
بروكسموكس
com.pfsense
Loadbalancer.org
discourse.org
سينمينمود
splynx
opnsense.org
لوحة ويب CentOS
lnmp.org
أكثر...
لا | حالة | منصة |
---|---|---|
1 | ماك أو إس إكس | |
2 | Windows (يتضمن cygwin مع curl وopensl وcrontab) | |
3 | فري بي إس دي | |
4 | سولاريس | |
5 | أوبونتو | |
6 | غير متوفر | com.pfsense |
7 | أوبن بي إس دي | |
8 | نت بي إس دي | |
9 | DragonFlyBSD | |
10 | أومنيوس | |
11 | ديبيان | |
12 | سينت أو إس | |
13 | openSUSE | |
14 | جبال الألب لينكس (مع حليقة) | |
15 | أركلينكس | |
16 | فيدورا | |
17 | كالي لينكس | |
18 | أوراكل لينكس | |
19 | ماجيا | |
10 | جنتو لينكس | |
11 | كليرلينكس | |
22 | ----- | سحابة لينكس #111 |
23 | ----- | OpenWRT: تم اختباره ويعمل. انظر صفحة الويكي |
24 | Proxmox: انظر Proxmox VE Wiki. الإصدار 4.x، 5.0، 5.1، الإصدار 5.2 وما فوق |
تحقق من مشروع الاختبار لدينا:
https://github.com/acmesh-official/acmetest
ZeroSSL.com CA (افتراضي)
Letsencrypt.org كاليفورنيا
BuyPass.com كاليفورنيا
SSL.com كاليفورنيا
Google.com CA العام
وضع بيبل الصارم
أي CA آخر متوافق مع RFC8555
وضع ويب روت
الوضع المستقل
وضع tls-alpn المستقل
وضع أباتشي
وضع نجينكس
وضع DNS
وضع الاسم المستعار DNS
وضع عديمي الجنسية
تحقق من هذا المشروع: https://github.com/acmesh-official/get.acme.sh
حليقة https://get.acme.sh | sh -s [email protected]
أو:
wget -O - https://get.acme.sh | sh -s [email protected]
انسخ هذا المشروع وابدأ التثبيت:
استنساخ بوابة https://github.com/acmesh-official/acme.sh.gitcd ./acme.sh ./acme.sh --install -m [email protected]
don't have to be root
بعد ذلك، على الرغم من it is recommended
.
التثبيت المتقدم: https://github.com/acmesh-official/acme.sh/wiki/How-to-install
سيقوم المثبت بتنفيذ 3 إجراءات:
قم بإنشاء ونسخ acme.sh
إلى منزلك dir ( $HOME
): ~/.acme.sh/
. سيتم وضع جميع الشهادات في هذا المجلد أيضًا.
إنشاء اسم مستعار لـ: acme.sh=~/.acme.sh/acme.sh
.
أنشئ مهمة كرون يومية للتحقق من الشهادات وتجديدها إذا لزم الأمر.
مثال لإدخال كرون:
0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null
بعد التثبيت، يجب عليك إغلاق المحطة الحالية وإعادة فتحها حتى يصبح الاسم المستعار ساري المفعول.
حسنًا، أنت جاهز لإصدار الشهادات الآن.
عرض رسالة المساعدة:
root@v1:~# acme.sh -h
مثال 1: مجال واحد.
acme.sh --issue -d example.com -w /home/wwwroot/example.com
أو:
acme.sh --issue -d example.com -w /home/username/public_html
أو:
acme.sh --issue -d example.com -w /var/www/html
مثال 2: مجالات متعددة في نفس الشهادة.
acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com
المعلمة /home/wwwroot/example.com
أو /home/username/public_html
أو /var/www/html
هي المجلد الجذر للويب حيث تستضيف ملفات موقع الويب الخاص بك. يجب أن يكون لديك write access
إلى هذا المجلد.
الوسيطة الثانية "example.com" هي المجال الرئيسي الذي تريد إصدار الشهادة له. يجب أن يكون لديك مجال واحد على الأقل هناك.
يجب عليك الإشارة إلى كافة النطاقات وربطها بنفس webroot dir: /home/wwwroot/example.com
.
سيتم وضع الشهادات في ~/.acme.sh/example.com/
سيتم تجديد الشهادات تلقائيًا كل 60 يومًا.
المزيد من الأمثلة: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
بعد إنشاء الشهادة، ربما تريد تثبيت/نسخ الشهادة إلى Apache/Nginx أو خوادم أخرى. يجب عليك استخدام هذا الأمر لنسخ الشهادات إلى الملفات المستهدفة، ولا تستخدم ملفات الشهادات الموجودة في المجلد ~/.acme.sh/ ، فهي للاستخدام الداخلي فقط، وقد تتغير بنية المجلد في المستقبل.
مثال أباتشي :
acme.sh --install-cert -d example.com --cert-file /path/to/certfile/in/Apache/cert.pem --key-file /path/to/keyfile/in/Apache/key.pem --fullchain-ملف /path/to/fullchain/certfile/Apache/fullchain.pem --reloadcmd "إعادة تحميل خدمة apache2 بقوة"
مثال إنجينكس :
acme.sh --install-cert -d example.com --key-file /path/to/keyfile/in/nginx/key.pem --fullchain-file /path/to/fullchain/nginx/cert.pem --reloadcmd "إعادة تحميل خدمة nginx بقوة"
مطلوب المجال فقط، وجميع المعلمات الأخرى اختيارية.
يتم الاحتفاظ بمعلومات الملكية والإذن للملفات الموجودة. يمكنك إنشاء الملفات مسبقًا لتحديد الملكية والإذن.
قم بتثبيت/نسخ الشهادة/المفتاح إلى مسار Apache أو Nginx للإنتاج.
سيتم تجديد الشهادة كل 60 يومًا بشكل افتراضي (وهو أمر قابل للتكوين). بمجرد تجديد الشهادة، ستتم إعادة تحميل خدمة Apache/Nginx تلقائيًا عن طريق الأمر: service apache2 force-reload
أو service nginx force-reload
.
يرجى توخي الحذر: إن reloadcmd مهم جدًا. يمكن تجديد الشهادة تلقائيًا، ولكن بدون "reloadcmd" الصحيح، قد لا يتم نقل الشهادة إلى خادمك (مثل nginx أو apache)، فلن يتمكن موقع الويب الخاص بك من عرض الشهادة المجددة خلال 60 يومًا.
(يتطلب أن تكون جذرًا/sudoer أو أن يكون لديك إذن للاستماع على المنفذ 80 (TCP))
يجب أن يكون المنفذ 80
(TCP) متاحًا للاستماع إليه، وإلا سيُطلب منك تحريره والمحاولة مرة أخرى.
acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com
المزيد من الأمثلة: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
(يتطلب أن تكون جذرًا/sudoer أو أن يكون لديك إذن للاستماع على المنفذ 443 (TCP))
يجب أن يكون المنفذ 443
(TCP) متاحًا للاستماع إليه، وإلا سيُطلب منك تحريره والمحاولة مرة أخرى.
acme.sh --issue --alpn -d example.com -d www.example.com -d cp.example.com
المزيد من الأمثلة: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
(يتطلب منك أن تكون root/sudoer، لأنه مطلوب للتفاعل مع خادم Apache)
إذا كنت تقوم بتشغيل خادم ويب، فمن المستحسن استخدام Webroot mode
.
وعلى وجه الخصوص، إذا كنت تقوم بتشغيل خادم Apache، فيمكنك استخدام وضع Apache بدلاً من ذلك. لا يقوم هذا الوضع بكتابة أي ملفات إلى مجلد جذر الويب الخاص بك.
ما عليك سوى تعيين السلسلة "Apache" كوسيطة ثانية وستفرض استخدام مكون Apache الإضافي تلقائيًا.
acme.sh --issue --Apache -d example.com -d www.example.com -d cp.example.com
وضع Apache هذا مخصص فقط لإصدار الشهادة، ولن يغير ملفات تكوين Apache الخاصة بك. ستحتاج إلى تكوين ملفات تكوين موقع الويب الخاص بك لاستخدام الشهادة بنفسك. لا نريد العبث بخادم Apache الخاص بك، فلا تقلق.
المزيد من الأمثلة: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
(يتطلب أن تكون root/sudoer، لأنه مطلوب للتفاعل مع خادم Nginx)
إذا كنت تقوم بتشغيل خادم ويب، فمن المستحسن استخدام Webroot mode
.
على وجه الخصوص، إذا كنت تقوم بتشغيل خادم nginx، فيمكنك استخدام وضع nginx بدلاً من ذلك. لا يقوم هذا الوضع بكتابة أي ملفات إلى مجلد جذر الويب الخاص بك.
فقط قم بتعيين السلسلة "nginx" كوسيطة ثانية.
سيقوم بتكوين خادم nginx تلقائيًا للتحقق من المجال ثم استعادة تكوين nginx إلى الإصدار الأصلي.
لذلك، لم يتم تغيير التكوين.
acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com
وضع nginx هذا مخصص فقط لإصدار الشهادة، ولن يغير ملفات تكوين nginx الخاصة بك. ستحتاج إلى تكوين ملفات تكوين موقع الويب الخاص بك لاستخدام الشهادة بنفسك. لا نريد العبث بخادم nginx الخاص بك، فلا تقلق.
المزيد من الأمثلة: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
إذا كان موفر DNS الخاص بك يدعم الوصول إلى واجهة برمجة التطبيقات (API)، فيمكننا استخدام واجهة برمجة التطبيقات (API) هذه لإصدار الشهادات تلقائيًا.
ليس عليك القيام بأي شيء يدويًا!
https://github.com/acmesh-official/acme.sh/wiki/dnsapi
راجع: https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode أولاً.
إذا كان موفر نظام أسماء النطاقات الخاص بك لا يدعم أي وصول إلى واجهة برمجة التطبيقات، فيمكنك إضافة سجل txt يدويًا.
acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com
يجب أن تحصل على إخراج مثل أدناه:
أضف سجل النص التالي: المجال:_acme-challenge.example.com قيمة النص:9ihDbjYfTExAYeDs4DBUeuTo18KBzwvTEjUnSwd32-c أضف سجل النص التالي: المجال:_acme-challenge.www.example.com قيمة النص:9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx الرجاء إضافة سجلات txt هذه إلى المجالات. في انتظار تفعيل نظام أسماء النطاقات.
ثم أعد التشغيل باستخدام وسيطة renew
:
acme.sh --renew -d example.com
حسنا، لقد تم ذلك.
انتبه، هذا هو الوضع اليدوي لنظام أسماء النطاقات، ولا يمكن تجديده تلقائيًا. سيتعين عليك إضافة سجل txt جديد إلى المجال الخاص بك بيدك عند تجديد شهادتك.
الرجاء استخدام وضع DNS API بدلاً من ذلك.
ما عليك سوى تعيين معلمة keylength
باستخدام البادئة ec-
.
على سبيل المثال:
acme.sh --issue -w /home/wwwroot/example.com -d example.com --keylength ec-256
acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256
يرجى إلقاء نظرة على معلمة keylength
أعلاه.
القيم الصالحة هي:
ec-256 (prime256v1، "ECDSA P-256"، وهو نوع المفتاح الافتراضي)
EC-384 (secp384r1، "ECDSA P-384")
ec-521 (secp521r1، "ECDSA P-521"، وهو غير مدعوم من Let's Encrypt حتى الآن.)
2048 (RSA2048)
3072 (RSA3072)
4096 (RSA4096)
الأمر بسيط، فقط قم بإعطاء مجال بدل كمعلمة -d
.
acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf
لا، لا تحتاج إلى تجديد الشهادات يدويًا. سيتم تجديد جميع الشهادات تلقائيًا كل 60 يومًا.
ومع ذلك، يمكنك أيضًا فرض تجديد الشهادة:
acme.sh --renew -d example.com --force
أو للحصول على شهادة ECC:
acme.sh --renew -d example.com --force --ecc
لإيقاف تجديد شهادة، يمكنك تنفيذ ما يلي لإزالة الشهادة من قائمة التجديد:
acme.sh --remove -d example.com [--ecc]
لا تتم إزالة ملف الشهادة/المفتاح من القرص.
يمكنك إزالة الدليل المعني (على سبيل المثال ~/.acme.sh/example.com
) بنفسك.
acme.sh
يخضع acme.sh للتطوير المستمر، لذا يوصى بشدة باستخدام أحدث التعليمات البرمجية.
يمكنك تحديث acme.sh إلى أحدث كود:
acme.sh --upgrade
يمكنك أيضًا تمكين الترقية التلقائية:
acme.sh --upgrade --الترقية التلقائية
سيتم بعد ذلك تحديث acme.sh تلقائيًا.
تعطيل الترقية التلقائية:
acme.sh - الترقية - الترقية التلقائية 0
https://github.com/acmesh-official/acme.sh/wiki/Issue-a-cert-from-existing-CSR
https://github.com/acmesh-official/acme.sh/wiki/notify
تحدث بلغة ACME باستخدام shell مباشرةً إلى "Let's Encrypt".
المهام:
قمة صغيرة: https://github.com/diafygi/acme-tiny
بروتوكول ACME: https://github.com/ietf-wg-acme/acme
هذا المشروع موجود بفضل جميع الأشخاص الذين ساهموا فيه.
كن مساهمًا ماليًا وساعدنا في الحفاظ على مجتمعنا. [يساهم]
ادعم هذا المشروع مع مؤسستك. سيظهر شعارك هنا مع رابط لموقعك على الويب. [يساهم]
الترخيص هو GPLv3
من فضلك نجمة وشوكة لي.
القضايا وطلبات السحب هي موضع ترحيب.
تبرعك يجعل acme.sh أفضل:
باي بال/عليباي(支付宝)/Wechat(微信): https://donate.acme.sh/
قائمة التبرعات