इसका प्रमाणपत्र प्राधिकरण - 5 ओपनएसएसएल टीमों में

इसकी आवश्यकता क्यों है?


मान लीजिए हमारे पास दो सर्वर हैं, वे स्वयं के लिए काम करते हैं, और समय-समय पर वे HTTP / HTTPS प्रोटोकॉल का उपयोग करते हुए एक-दूसरे से कुछ पूछना चाहते हैं।

HTTP प्रोटोकॉल सुरक्षित नहीं है और शहद सर्वर के बीच संचार के लिए HTTPS प्रोटोकॉल का उपयोग करना तर्कसंगत है।

इस तरह के संचार को व्यवस्थित करने के लिए, हमें 2 एसएसएल प्रमाणपत्रों की आवश्यकता होती है।

यदि सर्वर एक संगठन से संबंधित हैं, तो खरीदने के बजाय प्रमाण पत्र पर हस्ताक्षर करना आसान और सुरक्षित हो सकता है।

हमारा सीए बनाएं


पहला कमांड एक रूट कुंजी बनाता है

openssl genrsa -out rootCA.key 2048 

मेरे लिए, 2048 बिट कुंजी पर्याप्त है, यदि आप चाहें, तो आप 4096 बिट कुंजी का उपयोग कर सकते हैं।

दूसरा कमांड रूट प्रमाणपत्र बनाता है।

 openssl req -x509 -new -key rootCA.key -days 10000 -out rootCA.crt 

यहां आप कृपया अपने प्रश्नों के उत्तर दे सकते हैं।

 Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg server FQDN or YOUR name) []: Email Address []: 

10,000 दिन, इसकी समाप्ति तिथि, लगभग प्रमाण पत्र रहता है जिसके साथ Google को Google Play के लिए Android एप्लिकेशन पर हस्ताक्षर करने की आवश्यकता होती है। यदि आप एक अलार्मिस्ट हैं, तो एक या दो साल के लिए साइन अप करें।

वह सब है! अब हम अपने सर्वर के लिए प्रमाण पत्र बना सकते हैं और अपने क्लाइंट मशीनों पर रूट प्रमाणपत्र स्थापित कर सकते हैं।

हम अपने सीए द्वारा हस्ताक्षरित एक प्रमाण पत्र बनाते हैं


हम एक कुंजी उत्पन्न करते हैं।

 openssl genrsa -out server101.mycloud.key 2048 

प्रमाणपत्र अनुरोध बनाएँ।

 openssl req -new -key server101.mycloud.key -out server101.mycloud.csr 

सर्वर नाम को इंगित करना महत्वपूर्ण है: डोमेन या आईपी (उदाहरण के लिए, server101.mycloud डोमेन)

 Common Name (eg, YOUR name) []: server101.mycloud 

और हमारे रूट प्रमाणपत्र के साथ प्रमाणपत्र अनुरोध पर हस्ताक्षर करें।

 openssl x509 -req -in server101.mycloud.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server101.mycloud.crt -days 5000 

अब ग्राहकों को रूट प्रमाणपत्र rootCA.crt को स्थापित करने की आवश्यकता है

rootCA.crt - आप दोस्तों को दे सकते हैं, स्थापित कर सकते हैं, सर्वर की प्रतिलिपि नहीं बना सकते, सार्वजनिक एक्सेस में डाल सकते हैं
rootCA.key - को गुप्त रखा जाना चाहिए

रूट प्रमाणपत्र स्थापित करें


विंडोज

IE, क्रोम - विंडोज सर्टिफिकेट रिपॉजिटरी का उपयोग करें।

मेरा रास्ता यह है:

Chrome - सेटिंग - प्रमाणपत्र प्रबंधित करें ...
टैब विश्वसनीय रूट प्रमाणपत्र प्राधिकारी का चयन करें - आयात - rootCA.crt
क्रोम को पुनः आरंभ करें

विंडोज पर फायरफॉक्स का अपना भंडार है।

जावा का अपना भंडार है।

मैक ओएस एक्स

Safari, FireFox, Chrome - सिस्टम रिपॉजिटरी का उपयोग करते हैं।

लॉन्च करें किचेन एक्सेस।
फ़ाइल मेनू पर जाएं - आयात आइटम (लॉगिन या सिस्टम) - rootCA.crt फ़ाइल का चयन करें।
पूछे जाने पर, हम जवाब देते हैं - ऑलवेज ट्रस्ट।



अपनी व्यक्तिगत सफारी के लिए, बस लॉगिन का चयन करें।


Ubuntu में

 sudo mkdir /usr/share/ca-certificates/extra sudo cp rootCA.crt /usr/share/ca-certificates/extra/rootCA.crt sudo dpkg-reconfigure ca-certificates sudo update-ca-certificates 

सर्वर प्रोग्राम पर जाएं

गो पर सर्वर प्रोग्राम myserver.go है, जो हमारे हस्ताक्षरित प्रमाण पत्र का उपयोग करता है।
 package main import ( "log" "net/http" ) func main() { http.Handle("/files/", http.StripPrefix("/files/", http.FileServer(http.Dir("./files/")))) go func() { log.Fatal(http.ListenAndServeTLS(":8443", "server101.mycloud.crt", "server101.mycloud.key", nil)) }() http.ListenAndServe(":8080", nil) } 

 go run myserver.go 

Server101.mycloud सर्वर पर प्रोग्राम चलाने से, आपका ब्राउज़र पृष्ठ https: //server101.mycloud: 8443 / पर शपथ नहीं लेगा, और इसे मूल के रूप में खोलेगा, यदि इससे पहले आपने रूट प्रमाणपत्र के रूप में सिस्टम में rootCA.crt स्थापित किया है।

पायथन में सर्वर


 import BaseHTTPServer, SimpleHTTPServer, ssl httpd = BaseHTTPServer.HTTPServer(('localhost', 8443), SimpleHTTPServer.SimpleHTTPRequestHandler) httpd.socket = ssl.wrap_socket (httpd.socket, certfile='server101.mycloud.pem', server_side=True) httpd.serve_forever() 


 #        cat server101.mycloud.key server101.mycloud.crt > server101.mycloud.pem #     python myserver.py 

पुनश्च


मैं यह उल्लेख करना महत्वपूर्ण समझता हूं कि वाइल्डकार्ड सर्टिफिकेट सुरक्षित नहीं हैं; यदि कोई हमलावर एक सर्वर से वाइल्डकार्ड सर्टिफिकेट अपने कब्जे में लेता है, तो यह अन्य सभी सर्वरों को खतरे में डाल देगा। वर्चुअल क्लाउड सर्वर पहले से ज्यादा लोकप्रिय हैं। अक्सर, पृष्ठभूमि कार्य अलग-अलग वर्चुअल सर्वर पर चलते हैं। ऐसे सर्वरों की संख्या लगातार बढ़ रही है। इसका प्रमाणपत्र प्राधिकरण पूरी प्रणाली का एक महत्वपूर्ण सुरक्षा तत्व है।

Source: https://habr.com/ru/post/In192446/


All Articles