سؤال

أحاول تكوين خادم tomcat مع SSL. لقد أنشأت keypair هكذا:

$ keytool -genkeypair -alias tomcat -keyalg RSA -keystore keys

بعد ذلك ، أقوم بإنشاء طلب توقيع الشهادة:

$ keytool -certreq -keyalg RSA -alias tomcat -keystore keys -file tomcat.csr

ثم نسخ ملصق محتويات tomcat.csr في نموذج على موقع Thawte ، يطلب شهادة SSL التجربة. في المقابل أحصل على شهادتين -----BEGIN ... -----END, ، أن حفظه تحت tomcat.crt و thawte.crt. (تدعو Thawte الشهادة الثانية شهادة "اختبار CA CA").

عندما أحاول استيراد أي منهما يفشل:

$ keytool -importcert -alias tomcat -file tomcat.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Failed to establish chain from reply

$ keytool -importcert -alias thawte -file thawtetest.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Input not an X.509 certificate

إضافة -trustcacerts خيار أي من هذه الأوامر لا يغير أي شيء أيضًا.

أي فكرة عما أفعله خطأ هنا؟

هل كانت مفيدة؟

المحلول

لقد فهمت أخيرًا ما كان يحدث هنا. اتضح أن الردود التي حصلت عليها من thawte تم تنسيقها كـ PKCS#7 ، بينما keytool تتوقع مصدقة بتنسيق X.509.

openssl يمكن استخدامها لتحويل الشهادات من تنسيق إلى آخر:

$ openssl pkcs7 -in thawtetest.crt -print_certs |
  openssl x509 > thawtetest.x509

الآن يمكنك استيراد thawtetest.x509 مع keytool ، و tomcat.crt خلفه.

نصائح أخرى

يجب أن تكون قادرًا على استيراد سلاسل PKCS#7 باستخدام KeyTool ، طالما أنك تستخدم إصدارًا أكثر حداثة. سيعمل تصدير certs إلى ملفات مميزة أيضًا ، ولكن إذا كنت تقوم بتشغيل إصدار حديث من KeyTool ، فلا ينبغي أن تكون هناك مشكلة في استيراد ملف PKCS#7 نفسه.

بعد أن واجهت نفس المشكلة التي وجدتها هذا المشنور مما ساعدني على الخروج. لقد وضعت شهادات التجربة التي تلقيتها في ملف واحد واستخدمت keytool لاستيراد صنع تأكد من أن الاسم المستعار (keytool -alias param) كنت مختلفًا كان مختلفًا (أي ليس نفس الاسم المستعار الذي استخدمته عند إنشاء الشهادات للطلب). إنها رسالة خطأ غريبة بالنظر إلى أنها ببساطة لا تحب محاولة الاستيراد إلى نفس الاسم المستعار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top