विंडोज 10 के लिए दूरस्थ डेस्कटॉप (आरडीपी) कनेक्शन के लिए एक सत्यापित सर्वर प्रमाण पत्र कैसे प्रदान करें


15

हमारे कार्यालय में हमारे पास एक विंडोज 10 प्रो मशीन है जो आने वाले दूरस्थ डेस्कटॉप कनेक्शन (एक 'होस्ट') के लिए इंटरनेट के लिए एक खुला बंदरगाह है। यह जटिल पासवर्ड और अनुमत प्रयासों की सीमित संख्या और केवल टीएलएस 1.1 या उच्चतर द्वारा संरक्षित है, लेकिन यह बाहरी रूप से सत्यापित एसएसएल प्रमाणपत्र प्रस्तुत नहीं करता है, केवल स्व-निर्मित स्व-हस्ताक्षरित है जो दूरस्थ डेस्कटॉप सेवाएं प्रदान करता है, और यह हमें दो समस्याएं देता है:

  1. जब हम वास्तव में इस मशीन से जुड़ रहे होते हैं और कुछ अपहृत कनेक्शन नहीं होते हैं तो हम पूरी तरह से आश्वस्त नहीं हो सकते हैं।
  2. हमारी साइट पीसीआई-डीएसएस 3.1 अनुपालन जांच में विफल रहती है (आवश्यक है क्योंकि हम वहां एक पॉइंट-ऑफ-सेल डेबिट / क्रेडिट कार्ड मशीन का उपयोग करते हैं जो इंटरनेट से जुड़ता है)। चेक इस इंटरनेट-फेसिंग दूरस्थ डेस्कटॉप पोर्ट पर घातक त्रुटियों की रिपोर्ट करता है: 'एसएसएल स्व-हस्ताक्षरित प्रमाणपत्र' और 'गलत होस्ट के साथ एसएसएल प्रमाणपत्र'।

मुझे दूरस्थ डेस्कटॉप सत्यापन के लिए उचित एसएसएल प्रमाणपत्र प्रस्तुत करने के लिए सर्वर / होस्ट के रूप में विंडोज 10 प्रो (या विंडोज 7/8 / 8.1 प्रो) मशीन कैसे मिलती है?


1
आप स्व-हस्ताक्षरित प्रमाण पत्र को या तो प्रत्येक मशीन के सर्टिफिकेट स्टोर में रख सकते हैं, जो इस मशीन से जुड़ जाएगा, इस तरह से केवल स्व-हस्ताक्षरित प्रमाणपत्र पर भरोसा है। आप CA और डिफ़ॉल्ट रूप से हस्ताक्षरित प्रमाण पत्र भी प्राप्त कर सकते हैं, क्योंकि CA पर भरोसा किया जाता है, जिस प्रमाणपत्र का उपयोग करना चाहता है उस पर भरोसा किया जाएगा। जब तक आप CA द्वारा हस्ताक्षरित प्रमाणपत्र प्राप्त नहीं कर लेते, आप अपने PCI-DSS 3.1 अनुपालन मुद्दों को हल नहीं कर पाएंगे। तुम्हें वह करना चाहिए।
रामहुंड

धन्यवाद @ रामहुंड, आप काफी सही हैं, मुझे एक सीए-हस्ताक्षरित प्रमाण पत्र की आवश्यकता है - मेरे पास अब एक है।
गोगुड़

जवाबों:


16

आप अपने (मौजूदा, खरीदे हुए) वर्धित रूप से सत्यापित एसएसएल प्रमाणपत्र का उपयोग करने और उसे प्रस्तुत करने के लिए इस होस्ट मशीन को सेट कर सकते हैं (इस प्रकार निर्देश भी शायद विंडोज 8 और 8.1 के लिए काम करते हैं, विंडोज 7 के लिए काम कर सकते हैं या नहीं भी कर सकते हैं) (इसके कुछ हिस्से Microsoft पर आधारित हैं) KB 2001849 ):

सबसे पहले, आपको एक वास्तविक सत्यापित एसएसएल प्रमाणपत्र खरीदना होगा।

यदि आपके पास pkcs12 प्रारूप फ़ाइल (उदाहरण pfx एक्सटेंशन) में यह प्रमाणपत्र है, तो आप इस प्रकार लिनक्स या साइगविन का उपयोग करके SHA1 फिंगरप्रिंट देख सकते हैं (आपको नीचे इसकी आवश्यकता होगी):

openssl pkcs12 -in mysite.pfx -nodes|openssl x509 -noout -fingerprint

वैकल्पिक रूप से यदि आपके पास अपने लिनक्स सर्वर में / etc / ssl (/etc/ssl/certs/mysite.crt, /etc/ssl/mysite.ca-bundle और /etc/ssl/pStreet/mysite.key पर अलग-अलग प्रमाणपत्र फ़ाइलें हैं ) आप pfx फ़ाइल बना सकते हैं और SHA1 फिंगरप्रिंट प्राप्त कर सकते हैं:

  1. अपने प्रमाणपत्र के लिए pfx फ़ाइल बनाएँ, यदि आपके पास पहले से कोई नहीं है (यहाँ: mysite.pfx) - अनुरोध के बाद एक अच्छा पासवर्ड सेट करें:

    sudo openssl pkcs12  -export -out mysite.pfx -inkey /etc/ssl/private/mysite.pem -in /etc/ssl/certs/mysite.crt -certfile /etc/ssl/mysite.ca-bundle
    
  2. इस pfx फ़ाइल को आवश्यकतानुसार स्थानांतरित या कॉपी करें ताकि यह आपके विंडोज होस्ट मशीन द्वारा सुलभ हो।

  3. कुंजी का SHA1 फ़िंगरप्रिंट देखें (आपको नीचे इसकी आवश्यकता होगी):

openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint

Windows होस्ट मशीन के व्यक्तिगत प्रमाणपत्र स्टोर में pkcs12 प्रारूप (उदा pfx) फ़ाइल आयात करें:

  1. प्रारंभ> रन> mmc
  2. फ़ाइल> स्नैप-इन> सर्फ़िकेट्स जोड़ें> कंप्यूटर खाता> स्थानीय कंप्यूटर> ठीक जोड़ें जोड़ें
  3. बाएं हाथ की खिड़की में प्रमाण पत्र (स्थानीय कंप्यूटर) पर राइट-क्लिक करें, सभी कार्य / आयात चुनें ...
  4. Pfx फ़ाइल का पता लगाएँ और इसे आयात करें, मेरा सुझाव है कि सुरक्षा कारणों से आप इसे निर्यात करने योग्य नहीं बनाते हैं।
  5. अपने व्यक्तिगत / प्रमाणपत्रों का विस्तार करते हुए आपको अब 3 प्रमाणपत्रों को देखना चाहिए, जिनमें से एक आपके साइट प्रमाणपत्र (जैसे mysite.com) है। इस साइट प्रमाणपत्र पर राइट-क्लिक करें और राइट-क्लिक करें, सभी कार्य चुनें / निजी कुंजी प्रबंधित करें ...
  6. केवल पढ़ने की अनुमति (पूर्ण नियंत्रण नहीं) के साथ उपयोगकर्ता 'नेटवर्क सेवा' जोड़ें, फिर आवेदन करें
  7. मिमी को बंद करें

SSLCertificateSHA1Hash नामक एक नया बाइनरी मान जोड़ने के लिए regedit का उपयोग करें HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp। इसके लिए आवश्यक मान ऊपर दिए गए प्रमाणपत्र का SHA1 फिंगरप्रिंट है: नए मूल्य पर राइट-क्लिक करें, संशोधित करें और फिर क्रमबद्ध रूप से हेक्स कोड में टाइप करें (बिना कॉलन या स्पेस या कॉमा के, अक्षर केस-संवेदी नहीं हैं) - वहाँ हैं सभी (40 वर्णों) में 20 हेक्स जोड़े।

काम करने से पहले आपको होस्ट मशीन को रिबूट करने की आवश्यकता हो सकती है या रिमोट डेस्कटॉप सर्विसेज (Services.msc से) को पुनरारंभ करना पड़ सकता है।

अब, सही होस्ट नाम (जैसे mysite.com) का उपयोग करके इस होस्ट के लिए एक दूरस्थ डेस्कटॉप कनेक्शन बनाने के बाद, आपको शीर्ष कनेक्शन बार के बाईं ओर स्थित लॉकलॉक देखना चाहिए: इस पर क्लिक करने से पता चलता है कि रिमोट की पहचान कंप्यूटर सत्यापित किया गया था। इस होस्ट के माध्यम से इंटरनेट से खुलने वाला पोर्ट अब PCI-DSS 3.1 होस्टनाम परीक्षण पास करना चाहिए।


मैं आपको कुछ हजारों बार उत्थान करना चाहता हूं। यह 100% काम करता है
शॉकवॉवर

9

यहां मेरे द्वारा उपयोग किए जाने वाले मूल चरण हैं:

एक मान्य प्रमाणपत्र प्राप्त करें कि मेजबान के लिए, (इसे बाहरी सीए से नहीं आना है, लेकिन आपकी सभी मशीनों को इस पर भरोसा करना होगा)। सुनिश्चित करें कि इसमें सही होस्टनाम है, मुझे वाइल्डकार्ड सेरट की समस्या थी।

होस्ट पर प्रमाणपत्र स्थापित करें, जैसे:

certutil.exe -p myPassword -importPFX c:\mycert.pfx noExport

या तो UI या पॉवरशेल में, प्रमाण पत्र के लिए थंबप्रिंट ढूंढें:

$tp = (ls Cert:\LocalMachine\my | WHERE {$_.Subject -match "something unique in your certs subject field" } | Select -First 1).Thumbprint

अब दूरस्थ डेस्कटॉप को उस प्रमाणपत्र का उपयोग करने के लिए कहें:

& wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="$tp" 

कोई रिबूट की आवश्यकता नहीं है


मेरे वाइल्डकार्ड एसएसएल सर्टिफिकेट ने ठीक काम किया, लेकिन मुझे अभी भी एमएमसी और नेटवर्क सेवा अनुमति जोड़ना था या यह काम नहीं करेगा।
FreeSoftwareServers

मैं "विंडोज 10" के साथ-साथ "विंडोज सर्वर 2016" पर वाइल्डकार्ड सेरेट्स आयात करने में सक्षम था, जिसमें विंडोज सर्वर के पास सर्टिफिकेट नहीं है। यह एक बड़ी बात नहीं है क्योंकि आप मैन्युअल रूप से mycert.pfx को प्रमाणित स्टोर में आयात कर सकते हैं। मुझे MMC नहीं खोलना था और नेटवर्क सेवा अनुमति नहीं जोड़ना था।
TMT

1

मेरे प्रमाणपत्र 2 की जरूरत फाइलों के साथ आता है, domain.crtऔर domain.ca-bundleऔर फिर मैं अपने राशि domain.keyअनुरोध पैदा करने से।

यहां बताया गया है कि मैंने इसे कैसे सेट करने के लिए एक लिनक्स VM का उपयोग करके सीरियल्स को संयोजित किया और होस्ट को सेटअप करने के लिए फिंगरप्रिंट और विंडोज़ सीएमडी उत्पन्न किया। यह सेटअप की पूरी स्क्रिप्टिंग की अनुमति देता है।

मेरा और @ वोगॉड के बीच सबसे बड़ा अंतर हैं:

  • मैं रजिस्ट्री को संपादित नहीं करता। मैंने कोशिश की और यह काम नहीं किया, मैं wmic /namespace:सीएमडी प्रॉम्प्ट के माध्यम से उपयोग करता हूं ।
  • मैंने अंगूठे के सभी अनावश्यक हिस्सों को छीनने के लिए लिनक्स वीएम पर "फ़िंगरप्रिंट" लाइन को तैयार किया और इसे उस प्रारूप में रखा जो विंडोज चाहता है। (आईई: कोई कॉलन, कोई शब्द नहीं, सिर्फ फिंगरप्रिंट डब्ल्यू / लोअर केस लेटर्स)।
  • मैंने NETWORK SERVICEअनुमतियाँ जोड़ने की स्क्रिप्ट भी की है।

इसमें काम करने के लिए एक निर्देशिका बनाएं और उसमें 3 फाइलें ले जाएं:

domain.ca-bundle  domain.crt  domain.key 

Pfx प्रारूप कुंजी बनाएँ:

sudo openssl pkcs12  -export -out domain.pfx -inkey *.key -in *.crt -certfile *.ca-bundle

SSLCertificateSHA1Hash / फ़िंगरप्रिंट को TXT फ़ाइल में निर्यात करें:

sudo openssl x509 -in *.crt -noout -fingerprint | sed -e 's/SHA1 Fingerprint=//g' | sed -e 's/://g' | tr '[:upper:]' '[:lower:]' > SSLCertificateSHA1Hash.txt

विंडोज के लिए आयात प्रमाण पत्र (ओपन एलिवेटेड CMD प्रॉम्प्ट):

  • इसे "-p MyPassword" स्विच के माध्यम से आगे स्क्रिप्ट किया जा सकता है

    certutil.exe -importpfx C:\domain.pfx
    

अब SSLCertificateSHA1Hash को RD-Tcp में CMD (एलिवेटेड CMD प्रॉम्प्ट) के माध्यम से जोड़ें:

set /p FingerPrint=<C:\SSLCertificateSHA1Hash.txt
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="%FingerPrint%"

अब आपको उपयोगकर्ता "नेटवर्क सेवा" w / "केवल पढ़ने के लिए" अनुमतियाँ जोड़ने की आवश्यकता होगी:

icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\*" /grant "NETWORK SERVICE":R

रिबूट होस्ट:

 shutdown /r /t 5

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.