
عندما تقوم بإعداد شهادات SSL أو تجديدها باستخدام بروتوكول ACME، فليس من غير المعتاد أن تواجه أخطاءً غامضة توقف العملية في مساراتها. يرشدك هذا الدليل إلى أكثر المشكلات المتعلقة ب ACME شيوعاً، ويشرح لك ما تعنيه بالفعل، ويوضح لك كيفية إصلاحها بالضبط. سواءً كنت تقوم بتثبيت شهادة جديدة أو أتمتة التجديدات أو تصحيح أخطاء التحقق الفاشلة، فهذا هو المكان المناسب للبدء.
ربط الحساب الخارجي مفقود أو غير صالح
يظهر هذا الخطأ عندما يتطلب خادم ACME ربط حساب خارجي (EAB)، لكن عميلك لم يرسل بيانات اعتماد صالحة أو تخطاها بالكامل. EAB هي طريقة لإثبات أنه مسموح لك باستخدام خادم ACME معين.
كيفية إصلاحه:
- تحقق مرة أخرى من معرف المفتاح ومفتاح HMAC: تأكد من أن كلاهما صحيحان وكما تم توفيرهما بالضبط. لا توجد مسافات مخفية أو فواصل أسطر.
- استخدم عنوان URL الصحيح لدليل ACME: يسمح لك بعض العملاء بتمرير – الخادم. لا تخلط بين عناوين URL الخاصة بالإنتاج وعناوين URL الخاصة بالتدريج.
- أضف أعلام EAB: إذا كنت تستخدم
acme.sh، يجب أن تبدو الأعلام على النحو التالي: –eab-kid –eab-hmac-key - قم بتحديث عميل ACME الخاص بك: إذا كان العميل قديمًا، فقم بتحديثه. الإصدارات الأحدث تدعم EAB بشكل أفضل.
الحساب غير موجود
يظهر الخطأ: URL :ietf:params:acme:error:accountDoesNotExist عندما يحاول عميل ACME استخدام مفتاح حساب محلي (المفتاح المخزن في مجلد التكوين الخاص به) لا يتعرف عليه المرجع المصدق (CA).
بعبارات واضحة، يشير عميل ACME الخاص بك إلى حساب غير موجود أو تم حذفه من طرف المرجع المصدق (CA). إنه أمر شائع عند إعادة تثبيت العميل أو نقل الخوادم أو التبديل بين نقاط نهاية التدريج والإنتاج.
كيفية إصلاحه:
1. أعد تسجيل حساب ACME الخاص بك: استخدم بيانات الاعتماد الصحيحة لربط الحساب الخارجي (EAB) عند التسجيل.
مثال لـ acme.sh:
acme.sh --register-account \
--server https://acme.your-ca.com/v2/DV \
--eab-kid YOUR_EAB_KID \
--eab-hmac-key YOUR_EAB_HMAC_KEY \
--accountemail [email protected]
2. تحقق من عنوان URL لخادم ACME: تأكد من تسجيلك بنقطة النهاية الصحيحة التي تطابق طلبك.
3. تجنب إعادة استخدام ملفات الحسابات: لا تقم بنقل Account.conf أو مفاتيح الحسابات بين الخوادم أو العملاء إلا إذا كنت متأكدًا بنسبة 100% من أنها صالحة لنفس المرجع المصدق المرجعي المستقل والبيئة.
خطأ غير مقصود أو خطأ في منع إعادة التشغيل
قام عميل ACME بإرسال طلب باستخدام رمز غيرce (رمز مميز لمرة واحدة من المرجع المصدق (CA)) تم استخدامه بالفعل أو انتهت صلاحيته أو غير صالح. يقوم الخادم بحظره لمنع هجمات إعادة التشغيل. عادةً ما يكون الخطأ: urn :ietf:params:acme:error:badNonce مشكلة مؤقتة ناتجة عن سوء التوقيت أو تأخر الطلبات أو عدم تطابق الساعة.
كيفية إصلاحه:
1. فقط أعد محاولة الطلب: سيقوم معظم عملاء ACME (مثل acme.sh) بإعادة المحاولة تلقائيًا عندما يتلقون خطأ badNonce. إذا لم يكن كذلك، أعد تشغيل الأمر الأخير يدويًا. يجب أن يعمل في المحاولة الثانية.
2. مزامنة ساعة الخادم الخاص بك: يمكن أن يتسبب انحراف توقيت النظام في حدوث أخطاء في إعادة التشغيل. اركض:
timedatectl status
timedatectl set-ntp true
أو تأكد من تشغيل ntpd أو chronyd بشكل صحيح.
3. تحقق من وجود تأخير في البروكسي أو CDN: إذا كنتَ خلف Cloudflare أو موازن تحميل أو وكيل بطيء، فقد يؤخر ذلك طلباتك بما يكفي لإبطال nonce. حاول تجاوزه مؤقتًا.
لم يتم تفويض المعرّف المطلوب
عندما ينبثق خطأ: urn :ietf:params:acme:error:rejectedIdentifier، فإن خادم ACME رفض اسم أو أكثر من أسماء النطاقات التي حاولت التحقق من صحتها. عادةً ما يكون السبب
- النطاق غير موجود في DNS العام
- لا يوجد سجل DNS يشير إلى الخادم الخاص بك
- النطاق غير مصرح به لإصدار الشهادات
ببساطة، لا يمكن لـ CA التحقق من امتلاكك لهذا النطاق أو التحكم فيه.
كيفية إصلاحه:
1. استخدم التنسيق الصحيح في الأمر الخاص بك: قم بتضمين اسم المجال فقط. لا بروتوكول أو شرطة مائلة أو عناوين URL كاملة.
- صواب: -d exampled.com
- خطأ: – d http://example.com
2. تحقق من وجود النطاق وحلّه. اركض:
dig example.com +short
إذا لم يكن هناك أي مخرجات، فهذا يعني أن نطاقك لم يتم نشره بعد، قم بإصلاح إعدادات DNS أولاً.
2. طابق طلب ACME الخاص بك: إذا كنت تستخدم شهادة ACME تجارية، فتأكد من أن النطاق الذي تصدره مدرج في الطلب الأصلي. لا يمكنك إضافة نطاقات على الطاير. يجب أن تكون معتمدة مسبقًا.
3. احترس من الأخطاء المطبعية واختلاط النطاقات الفرعية: تحقق مرة أخرى من أشياء مثل www.example.com مقابل example.com. يتم التعامل معها كمدخلات منفصلة.
استجابة غير مصرح بها أو غير صالحة
لم يتمكن المرجع المصدق من التحقق من ملكية نطاقك. في أغلب الأحيان، لم يتمكن من الوصول إلى ملف تحدي ACME الذي وضعه عميلك على الخادم. هذه مشكلة في التحقق من صحة HTTP: حاول المرجع المصدق (CA) الوصول إلى موقعك، لكنه لم يتمكن من العثور على التحدي أو قراءته.
رسالة الخطأ بالضبط هي: urn :ietf:params:acme:error:unauthorized. قد تظهر أيضًا على النحو التالي: “استجابة غير صالحة من http://yourdomain.com/.well-known/acme-challenge/…”.
كيفية إصلاحه:
- تأكد من إمكانية الوصول إلى الخادم الخاص بك على المنفذ 80 (حتى لو كان موقعك يُعاد توجيهه عادةً إلى HTTPS).
- تحقق مرة أخرى من مسار webroot في تكوين عميل ACME الخاص بك. يجب كتابة ملفات التحدي إلى: /.معروف/acme-challenge/.
- إذا كان خادمك يفرض عمليات إعادة توجيه HTTPS، اسمح مؤقتًا بطلبات HTTP العادية لهذا المسار.
- قم بتعطيل شبكات CDN أو البروكسيات العكسية أو جدران الحماية التي قد تتداخل مع التحقق من صحة HTTP الخارجية من المرجع المصدق (CA).
- تحقق من أذونات الملف وتأكد من أن ملف التحدي يتم إنشاؤه بالفعل ويمكن الوصول إليه بشكل عام.
لم يتم العثور على الرمز المميز أو الملف غير قابل للوصول (404 أو 403)
حاول خادم ACME جلب ملف تحدي HTTP، لكنه حصل على استجابة 404 (غير موجود) أو 403 (ممنوع). هذا يعني إما أن الملف لم يتم وضعه بشكل صحيح، أو أنه لا يمكن الوصول إليه بشكل عام، أو أن خادم الويب الخاص بك يحظر الوصول إليه.
قد تختلف رسائل الخطأ بالضبط. إليك ما يمكنك توقع رؤيته:
- استجابة غير صالحة من http://yourdomain.com/.well-known/acme-challenge/… [404].
- استجابة غير صالحة … [403 ممنوع]
- urn:ietf:params:acme:error:unauthorized
كيفية إصلاحه:
تحقق من جذر المستند للمجال وتأكد من تطابقه مع المكان الذي يضع فيه عميل ACME الملف: /.معروف/acme-challenge/.
تأكد من أن ملف الرمز المميز موجود ويمكن الوصول إليه من المتصفح. يجب أن تكون قادرًا على فتح عنوان URL الخاص بالتحدي مباشرةً في متصفحك ورؤية محتوى الرمز المميز.
تعيين أذونات الملف الصحيحة: يجب أن يكون ملف تحدي ACME ومجلداته الرئيسية قابلة للقراءة عالميًا.
إذا كنت تستخدم قواعد htaccess، أو جدران الحماية، أو إضافات الأمان (كما هو الحال في ووردبريس)، فتأكد من أنها لا تمنع الوصول إلى المسار /.معروف/.
إذا حصلت على 403، تحقق أيضًا من ملكية الملف وقيود SELinux/AppArmor إن وجدت.
سجل CAA يمنع الإصدار
يحتوي DNS الخاص بك على سجل CAA الذي يقيد المراجع المصدقة التي يمكنها إصدار شهادات لنطاقك. إذا لم يكن المرجع المصدق الذي تحاول استخدامه غير مدرج في السجل، فسيتم حظره افتراضيًا. قد تشاهد رسالة الخطأ التالية: urn :ietf:params:acme:error:caa
هذه سياسة على مستوى DNS، وليست مشكلة في الخادم. مطلوب من المراجع المصدقة التحقق من CAA قبل إصدار أي شهادة.
كيفية إصلاحه:
تحقَّق من منطقة DNS الخاصة بنطاقك بحثًا عن سجلات CAA. يمكنك استخدام أدوات عبر الإنترنت أو الأمر dig:
dig CAA yourdomain.com
إذا لم يكن هناك سجل CAA، فيمكن لأي CA إصدارها. ولكن إذا كان هناك سجل، تأكد من أنه يتضمن الاسم الدقيق لمزود الشهادة الخاص بك مثل:
- 0 قضية “sectigo.com”
- 0 قضية “digicert.com”
إذا كنت تستخدم شهادة حرف بدل، أضف أيضًا سطر issuewewild: 0 issuewild “sectigo.com”
انتظر بضع دقائق حتى يتم نشر DNS، ثم أعد تجربة أمر ACME. إذا كنت غير متأكد، فقم بإزالة سجل CAA مؤقتًا لاختبار الإصدار، ولكن فقط إذا كنت تدير DNS بشكل آمن.
سجل TXT غير موجود (لشهادات أحرف البدل)
تتطلب شهادات أحرف البدل (مثل *.example.com) التحقق من صحة DNS-01، وهي الطريقة الوحيدة المسموح بها من قبل جميع المراجع المصدقة (CAs) لنطاقات أحرف البدل.
يعمل DNS-01 من خلال مطالبتك بإنشاء سجل TXT خاص في DNS: _acme-challenge.example.com
إذا كان هذا السجل مفقودًا أو لم يتم نشره بعد، فستحصل على هذا الخطأ.
أمثلة على الأخطاء:
- urn:ietf:params:acme:error:dns :: مشكلة في DNS: NXDOMAIN يبحث عن TXT ل _acme-challenge.example.com
- لم يتم العثور على سجل TXT لـ _acme-challenge.example.com
كيفية إصلاحه:
في موفر DNS الخاص بك، قم بإنشاء سجل TXT:
- الاسم: _acme-challenge.example.com
- القيمة: (الرمز المميز الذي يمنحك إياه عميل ACME؛ فريد لكل طلب)
انتظر 1-10 دقائق حتى ينتشر DNS. يستغرق بعض المزودين وقتاً أطول. قم بالتأكيد باستخدام الأمر التالي.
dig TXT _acme-challenge.example.com
يمكنك أيضًا استخدام أداة بحث عن DNS عبر الإنترنت. بمجرد ظهورها، أعد محاولة التحقق من الصحة.
طلبات كثيرة جداً أو تجاوز حد المعدل المسموح به
يظهر الخطأ كـ urn :ietf:params:acme:error:rateLimited أو 429 عدد طلبات كبير جدًا عندما يرفض خادم ACME معالجة طلبك لأنك وصلت إلى حد معدل.
يحدث هذا عادةً عندما تطلب الكثير من الشهادات لنفس النطاق (النطاقات) في فترة قصيرة أو عندما ترسل الكثير من الطلبات الفاشلة على التوالي.
كيفية إصلاحه:
تتم إعادة تعيين معظم حدود المعدل تلقائيًا بعد ساعة أو يوم أو أسبوع بناءً على ما ضربته. إذا كنت تستخدم برنامج نصي، تحقق من السجلات وأصلح الأخطاء قبل إعادة المحاولة. لا تستخدم القوة الغاشمة بشكل أعمى، فهذا يؤدي إلى تفاقم الإغلاق.
بالنسبة لعمليات التحقق من صحة DNS-01، تجنب إعادة الطلبات السريعة بعد أخطاء سجل TXT الصغيرة. انتظر انتشار DNS. إذا كان المرجع المصدق المرجعي المصدق (CA) يوفر صفحة حالة حد المعدل أو الرؤوس، فتحقق منها لمعرفة أوقات إعادة التعيين الأكثر دقة.
أخطاء في DNS أو فشل في البحث عن DNS
إذا ظهرت لك رسائل مثل“مشكلة في نظام أسماء النطاقات: NXDOMAIN يبحث عن A لـ example.com” أو“فشل مؤقت في حل الاسم“، فهذا يعني أن خادم ACME لم يتمكن من حل اسم نطاقك، إما لأن النطاق غير موجود، أو لم يتم نشره بعد، أو لا يحتوي على سجلات IP صالحة.
يعتمد المرجع المصدق على DNS للتحقق من أن نطاقك موجود ويشير إلى مكان حقيقي. إذا لم يتمكن من الوصول إلى سجلات A (IPv4) أو AAAA (IPv6) الخاصة بك، فسيقوم بإيقاف عملية التحقق من الصحة.
يمكن أن يحدث هذا إذا:
- نطاقك جديد تمامًا ولم يتم نشر DNS بالكامل
- نسيت إضافة سجلات DNS الصحيحة
- أنت تعمل في شبكة محلية أو داخلية بدون رؤية عامة لنظام أسماء النطاقات DNS
- يوجد خطأ مطبعي في اسم النطاق الذي أرسلته
كيفية إصلاحه:
- تحقق مرة أخرى من أن نطاقك يحتوي على سجلات A أو AAAA صالحة تشير إلى خادمك المباشر.
- استخدم أدوات مثل dig، أو nslookup، أو أدوات التدقيق عبر الإنترنت (مثل whatsmydns.net) لتأكيد الانتشار.
- تأكد من أنك لا تستخدم نطاقاً خاصاً أو داخلياً فقط. لا يعمل التحقق من صحة ACME إلا مع الأسماء القابلة للحل بشكل عام.
- انتظر بضع دقائق بعد تغييرات نظام أسماء النطاقات؛ فهي لا يتم نشرها على الفور دائمًا.
تعذر الاتصال بخادم ACME
يظهر هذا الخطأ عندما يتعذر على خادمك الوصول إلى نقطة نهاية ACME API. قد يظهر على شكل رفض الاتصال، أو انتهاء المهلة أثناء الاتصال، أو تعذر الاتصال، أو رسائل مشابهة اعتماداً على عميل ACME.
كيفية إصلاحه:
- تأكد من أن خادمك يسمح باتصالات HTTPS الصادرة على المنفذ 443.
- تحقق من إعدادات جدار الحماية أو قواعد الشبكة الصادرة (خاصةً في إعدادات السحابة/خادم الشبكة الخاص).
- إذا كنت تستخدم وكيلاً، اسمح بنقل البيانات إلى مجال خادم ACME الخاص بـ CA.
- تأكد من أن خادمك يحتوي على محلل DNS يعمل.
- اختبر الاتصال باستخدام: curl https://acme.example.com (استبدل بنقطة النهاية الحقيقية لـ CA الخاص بك).
- أعد تشغيل عميل ACME بعد حل مشاكل الشبكة.
فشل البرنامج النصي لما بعد التجديد
يظهر هذا الخطأ بعد تجديد الشهادة بنجاح عندما لا يتم تشغيل البرنامج النصي للمتابعة الذي يهدف إلى إعادة تحميل خادم الويب أو الخدمة بشكل صحيح. اعتمادًا على عميل ACME الخاص بك، قد ترى رسائل مثل “خطأ ما بعد الخطاف” أو “فشل نشر البرنامج النصي” أو “لم يتم العثور على الأمر”.
كيفية إصلاحه:
- قم بتشغيل البرنامج النصي لما بعد التجديد يدويًا لمعرفة ما الذي ينقطع.
- تحقق من مسارات الملفات، خاصة بالنسبة للشهادة والمفتاح الجديدين.
- تأكد من أن النص البرمجي لديه أذونات تنفيذ (على سبيل المثال، chmod +x script.sh).
- ابحث عن الأخطاء الإملائية أو التبعيات المفقودة أو بناء الأوامر الخاطئ.
- إذا كنت تستخدم خطاف نشر أو خطاف ما بعد النشر، فتأكد من أن العميل يدعمه وأنه مهيأ بشكل صحيح.
الكلمات الأخيرة
لقد قمنا بتغطية أخطاء شهادة ACMS SSL الأكثر شيوعًا وقدمنا إصلاحات سريعة. إذا لم تحل أي من هذه الحلول مشكلتك، فقم بتشغيل عميل ACME في وضع التصحيح. سيعطي معظم العملاء مخرجات أكثر تفصيلاً عند تمكين التسجيل. يمكن أن تساعد هذه المعلومات في تحديد السبب الحقيقي وتشغيل SSL الخاص بك مرة أخرى.
وفِّر 10% على شهادات SSL عند الطلب اليوم!
إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10

