2012-08-14 14 views
11

जब मैं शैल मैं इस त्रुटि मिलती है जेनकींस से SVN आदेश पंक्ति चलाएँ:SVN कमांड लाइन सर्वर प्रमाणपत्र बेमेल की वजह से विफल रहता है

D:\Jenkins\jobs\Merge Trunk to Stable\workspace\stable>svn up --trust-server-cert --non-interactive 
Updating '.': 
svn: E175002: Unable to connect to a repository at URL 'https://xxx/stable' 
svn: E175002: OPTIONS of 'https://xxx/stable': Server certificate verification failed: certificate issued for a different hostname, issuer is not trusted (https://xxx) 

लेकिन जब मैं कमांड लाइन सीएमडी खिड़की से ही चलाने यह ठीक है:

D:\Jenkins\jobs\Merge Trunk to Stable\workspace\stable>svn up 
Updating '.': 
At revision 1797. 

या

D:\Jenkins\jobs\Merge Trunk to Stable\workspace\stable>svn up --trust-server-cert --non-interactive 
Updating '.': 
At revision 1797. 

किसी भी विचार है कि यह कैसे हल करने के लिए ??

+0

क्या आपको उस सर्वर के लिए कहीं सर्वर फिंगरप्रिंट जोड़ने की आवश्यकता है? – fduff

+0

मुझे नहीं पता कि। मैं वास्तव में सवाल नहीं समझता ... मुझे पता है कि सर्वर प्रमाणपत्र का नाम मेल नहीं खाता है। इससे पहले मुझे कोई समस्या नहीं हुई। –

+0

मुझे मस्तिष्क/नेटवर्क/सबवर्जन सर्वर फ़ाइल जैसे कुछ दिमाग में था; वहाँ एक लापता सेटिंग हो सकती है, लेकिन यह सिर्फ एक अनुमान है। – fduff

उत्तर

15

सुंदर पुराना सवाल, लेकिन अभी भी काफी जिंदा है।

जैसा कि आप जानते हैं, समस्या यह है कि स्वीकृत प्रमाणपत्र कैश (साथ ही उपयोगकर्ता नाम/पासवर्ड कैश) प्रति उपयोगकर्ता है, और चूंकि जेनकिंस एक अलग उपयोगकर्ता (सबसे अधिक संभावना प्रणाली) के रूप में चल रहा है, इसलिए इसका कोई विचार नहीं है आपके नियमित उपयोगकर्ता कैश का।

सभी एसवीएन क्लाइंट आपको "इको पी" चीज़ नहीं करते हैं (यह मेरे लिए काम नहीं करता है), और --trust-server-cert स्पष्ट रूप से इस मामले में काम नहीं करता है।

मेरे लिए क्या काम किया गया open a console window as SYSTEM, और वहां पर इंटरैक्टिव स्वीकार्य-लॉगिन-पासवर्ड नृत्य करें।

चूंकि यह सब कैश किया गया है, इसलिए आपको केवल एक बार ऐसा करने की आवश्यकता है, और तब से, सभी svn up और इसी तरह के अनुरोध काम करेंगे।

+1

प्लसोन - तीन साल बाद, अभी भी एक मुद्दा और आपके उत्तर ने मुझे बचाया! धन्यवाद। –

6

अंततः मैं समस्या को हल करने में कामयाब रहा! मैंने जो किया वह बस जेनकींस स्क्रिप्ट में रखा गया है:

echo p | svn up --username <usr> --password <pwrd> 

यह हल हो गया! चूंकि इको ने स्थायी रूप से प्रमाणपत्र को स्वीकार करने के लिए मैन्युअल इनपुट को अनुकरण किया।

मूल कारण तथ्य यह है कि जेनकींस शेल स्क्रिप्ट खिड़कियों सेवा उपयोगकर्ता के अंतर्गत चलाने है - इस प्रकार

0

शायद, प्रमाण पत्र एक अलग करने के लिए जारी किया जाता है (C:\Windows\System32\config\systemprofile\AppData\Roaming\Subversion%USERPROFILE%\AppData\Roaming\Subversion\ के बजाय में) उपयोगकर्ता प्रोफ़ाइल कैश के लिए एक अलग जगह का उपयोग करता है होस्टनाम (xxx नहीं, लेकिन xxx.yourcompany.com की तरह कुछ)। यदि हां, तो इस होस्टनाम के साथ एक साफ चेकआउट करें।

0

echo p | svn commands

जेनकींस विंडोज़ बैच कमांड प्रॉम्प्ट में महान काम किया। इसे एक बार करने से बिल्ड बॉक्स में जेनकींस उपयोगकर्ता के लिए प्रमाणपत्र को स्थायी रूप से स्वीकार किया जाएगा।

0

दास पर जेनकींस के माध्यम से एसवीएन आदेश चलाना मुझे कठिनाई दे रहा था। http://www.microhowto.info/howto/configure_subversion_to_trust_a_given_ssl_certificate.html

आप Windows पर कर रहे हैं तो कार्य करें::

आप यूनिक्स पर कर रहे हैं तो इस लिंक का पालन करें:

cd %APPDATA%\Subversion\ 

फिर निकाल कर उस निर्देशिका में server फ़ाइल को संपादित मैं निम्नलिखित किया #ssl-authority-files तत्व से साइन इन करें और उस पथ को अपडेट करें जहां आपने अपनी एसएसएल प्रमाणपत्र फ़ाइल संग्रहीत की है।

यदि आप इसे अपने क्रेडेंशियल्स को स्टोर करना चाहते हैं तो निम्न को भी बदलें।

store-passwords = yes 
store-ssl-client-cert-pp = yes 

एक बार यह हो जाता है, तो आप भी Add the Cert to the Trusted Root CA Store

0

यह एक भयानक जवाब की तरह लग सकता का पालन करते हुए, लेकिन अन्य लोगों को थकाऊ के बाद अपने विंडोज़ मशीन के लिए प्रमाण पत्र को जोड़ने के लिए है, जो काम नहीं किया की आवश्यकता होगी मेरे लिए अन्य मुद्दों के कारण, मैं SSL का उपयोग न करने के लिए एसवीएन सर्वर को बदलने का मार्ग चुनना चाहता हूं।

यह केवल एक विकल्प था क्योंकि मैं बस इस सर्वर को सेटअप करता हूं और यह पूरी तरह से आंतरिक नेटवर्क पर है, लेकिन इसने पूरी तरह से इस मुद्दे को खत्म कर दिया है। और मैं अन्य विकल्पों और समय से बाहर भाग गया।

मैं यह भी सुझाव देता हूं कि किसी को यह महसूस न हो कि किसी को भी यह विकल्प नहीं है। एसएसएल का उपयोग करना मुझे सर्वर एक्सपोजर के बावजूद ज्यादा बेहतर महसूस करेगा।

0

जेनकींस और विंडो 7 के साथ एक ही समस्या थी। मैंने सेवाओं में जाकर इसे जेनकिंस का चयन करके हल किया और लॉग-ऑन पर जाकर प्रशासनिक प्रमाण-पत्र दर्ज किया और जेनकींस सेवा को पुनरारंभ किया।

आशा है कि यह आपकी समस्या का समाधान करे।

संबंधित मुद्दे