में प्रमाण पत्र के साथ HTTPS GET कॉल कैसे करें I जावा में Rest-Assured का उपयोग करके एक अंतराल बिंदु पर मुझे एक जीईटी कॉल कैसे कर सकता है जिसके लिए प्रमाण पत्र की आवश्यकता होती है। मेरे पास प्रमाण पत्र .pem
प्रारूप है। पीईएम फ़ाइल में प्रमाणपत्र और निजी कुंजी है।पुन: आश्वासित जावा
उत्तर
उपयोग कर रहे हैं की जाँच के लिए निम्न कोड के साथ काम मिल गया HTTPs सत्यापन "मेरी समस्या तय की गई:
given().relaxedHTTPSValidation().when().post("https://my_server.com")
मैं वही बात कर रहा हूं ... क्या आप मुझे बता सकते हैं कि आपको एंडपॉइंट के लिए प्रमाणपत्र कैसे मिला? –
@ हरिशतालंकी मुझे डेवलपर – rohitkadam19
से प्रमाण पत्र प्राप्त हुए हैं, इसके लिए मेरे पास एक समाधान था। लेकिन, मैं वास्तव में आपकी प्रतिक्रिया की सराहना करता हूं। धन्यवाद। –
मैं बाकी का आश्वासन दिया करने के लिए नया हूँ, लेकिन मैं जानता हूँ कि ग्राहक प्रमाणीकरण के लिए डिजिटल प्रमाणपत्र का उपयोग कर समस्याओं के इस प्रकार
आराम का आश्वासन दिया डॉक में केवल कॉन्फ़िगर करने के लिए प्रमाण पत्र एक विकल्प है: JKS
RestAssured.config = RestAssured.newConfig().sslConfig(new SSLConfig("/truststore_javanet.jks", "test1234");
Convert जेकेएस के लिए आपका पीईएम। इसे पोर्टेकल के साथ खोलें और सुनिश्चित करें कि पासवर्ड सही है और आपके पास प्रमाण पत्र लोड है और सीए रूट के लिए सभी प्रमाणीकरण श्रृंखला है। Portecle एक GUI का उपयोग कमांड लाइन को आसान बनाने के लिए और भी आप JKS
http://portecle.sourceforge.net/
यह त्रुटि आती है हमेशा अपने जावा ग्राहक सर्वर प्रमाणपत्र
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
ठीक करने के लिए सबसे आसान तरीका में विश्वास नहीं करते हैं जब बनाने की अनुमति देता इसमें आपके जेडीके कीस्टोर में सर्वर प्रमाणपत्र श्रृंखला शामिल है।
सबसे पहले, अपने ब्राउज़र के साथ एक https कनेक्शन खोलने वाले सर्वर प्रमाण पत्र डाउनलोड करें, उदाहरण के लिए क्रोम के साथ। इससे कोई फर्क नहीं पड़ता कि यह विफल रहता है। टूलबार में ग्रीन लॉक पर क्लिक करें> विवरण> सर्वर प्रमाणित देखें और पीईएम के रूप में डाउनलोड करें। यह सुनिश्चित करने के लिए कि आप सही उपयोग कर रहे हैं, इसे स्वयं डाउनलोड करना सबसे अच्छा है। प्रमाणीकरण श्रृंखला
के सभी प्रमाण पत्र डाउनलोड करें, फिर पोर्टेक के साथ जेडीके_एचओएमई/जेआर/lib/सुरक्षा पर जेडीके कैकर्ट खोलें। पासवर्ड 'परिवर्तन' होगा। सर्वर प्रमाण पत्र को 'विश्वसनीय'
के रूप में जोड़ें, अब PKIX पथ निर्माण विफल हो जाएगा।
KeyStore keyStore = null;
SSLConfig config = null;
try {
keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(
new FileInputStream("certs/client_cert_and_private.p12"),
password.toCharArray());
} catch (Exception ex) {
System.out.println("Error while loading keystore >>>>>>>>>");
ex.printStackTrace();
}
if (keyStore != null) {
org.apache.http.conn.ssl.SSLSocketFactory clientAuthFactory = new org.apache.http.conn.ssl.SSLSocketFactory(keyStore, password);
// set the config in rest assured
config = new SSLConfig().with().sslSocketFactory(clientAuthFactory).and().allowAllHostnames();
RestAssured.config = RestAssured.config().sslConfig(config);
RestAssured.given().when().get("/path").then();
मैंने कोशिश की, लेकिन यह कह रहा है "कोई आवश्यक एसएसएल प्रमाण पत्र भेजा नहीं गया"। मैं कीस्टोर बना रहा हूं और इसे RestAssured में जोड़ रहा हूं। – rohitkadam19
एक एसएसएल हैंडशेक में, सर्वर प्रमाण पत्र के सत्यापन के बाद प्रमाण पत्र प्रमाणीकरण अनुरोध OCCURS, इसलिए, पहला चरण पारित किया गया है। क्या आप सुनिश्चित हैं कि आपका जेकेएस प्रमाणपत्र सर्वर द्वारा स्वीकार किया गया है? क्या गलत पासवर्ड या जेकेएस की त्रुटियां नहीं मिली हैं? – pedrofb
कोड नीचे उल्लेख सिर्फ काम करता है,
public static void getArtifactsHttps(String args) {
String username = "username";
String password1 = "password";
StringBuilder authorization = new StringBuilder();
authorization.append(username).append(":").append(password);
String authHeader = "Basic " + Base64.getEncoder().encodeToString(authorization.toString().getBytes());
String response = RestAssured
.given()
.trustStore("D:\\workspace\\DemoTrust.jks", "DemoTrustKeyStorePassPhrase")
.when()
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.header("Authorization", authHeader)
.baseUri("https://server.us.oracle.com:55898")
.queryParam("name", args)
.get("/validendpoint").prettyPrint();
System.out.println("RESPONSE" + response);
}
मेरे मामले में उपयोग करते हुए "आराम - यदि नहीं, प्रमाण पत्र और JDK आप
RestAssured 3.0 का उपयोग करके मैंने @rohitkadam लिया 19 का कोड और ऐसा काम कर दिया गया है: जब आप प्रमाणपत्र के साथ सेवाओं का परीक्षण
@Before
public void setUp() throws Exception {
try {
RestAssured.port = port;
RestAssured.useRelaxedHTTPSValidation();
RestAssured.config().getSSLConfig().with().keyStore("classpath:keystore.p12", "password");
} catch (Exception ex) {
System.out.println("Error while loading keystore >>>>>>>>>");
ex.printStackTrace();
}
}
आराम का आश्वासन दिया कई मुद्दे के पिछले संस्करणों में के रूप में नवीनतम संस्करण 3.0.7 का उपयोग करें का सामना करना पड़ा दिया है
- 1. जावा थ्रेड पुन: उपयोग
- 2. जावा स्टेटमेंट ऑब्जेक्ट पुन: उपयोग?
- 3. पुन: आकार देने योग्य जावा अवरोधक्यूयू
- 4. जावा जेडीबीसी कनेक्शन का पुन: उपयोग
- 5. जावा में स्ट्रिंग्स की पुन: प्रयोज्यता?
- 6. पुन: प्रयास करें ग्रूवी
- 7. पुन: प्रयोज्य मॉड्यूल बनाने
- 8. जावा 7: थ्रेड पुन: उपयोग? (डिस्कनेक्ट करें - पुनः कनेक्ट करें)
- 9. जावा - एक वर्ग का विस्तार और विधियों का पुन: उपयोग?
- 10. विकेट - जावा विरासत के साथ पुन: प्रयोज्य पैनलों
- 11. "पुन: उत्पन्न नहीं कर सकता" - जावा निर्धारिती बहुभाषी संभव है?
- 12. मैं जावा सेट्स को पुन: सक्रिय और संशोधित कैसे करूं?
- 13. जावा विधियों का पुन: उपयोग करने के सर्वोत्तम तरीके
- 14. जावा लैम्ब्डा अज्ञात ऑब्जेक्ट का पुन: उपयोग किया गया है?
- 15. जावा - एक लिंक्ड सूची को पुन: सक्रिय करना
- 16. पुन: प्रयोज्य कन्स्ट्रक्टर सी ++
- 17. पुन डेटाबेस
- 18. पुन: प्रयोज्यता
- 19. पुन: div
- 20. ConcurrentHashMap को पुन: लोड
- 21. पुन: व्यवस्थित करें UITableView और छिपाने पुन: व्यवस्थित करें नियंत्रण
- 22. एंड्रॉइड एनडीके आयात-मॉड्यूल/कोड पुन: उपयोग
- 23. पुन: उत्पन्न मचान
- 24. पुन: प्राप्त करना --soft
- 25. पुन: प्रयोज्य कॉरपोरेट नेमस्पेस
- 26. AFNetworking: पुन: प्रयास आपरेशन
- 27. RxJava पुन: तर्क
- 28. (पुन) विजुअल स्टूडियो 2008
- 29. थ्रेडसेफ बनाम पुन: प्रवेश
- 30. पुन: उपयोग मेमोरी स्ट्रीम
मैं करने के लिए परिवर्तित करने की कोशिश की jks और RestAssured.keystore (jks, "passwrd") में उपयोग किया जाता है लेकिन यह त्रुटि दे रहा है - PKIX पथ निर्माण विफल: sun.security.provider.certpath.SunCertPathBuilderException: अनुरोधित लक्ष्य – rohitkadam19
पर मान्य प्रमाणीकरण पथ नहीं ढूंढ पा रहा है क्या आप नवीनतम संस्करण का उपयोग कर रहे हैं 2.9.0 का? – Johan
@Johan हां, नवीनतम संस्करण 2.9.0 – rohitkadam19