Microsoft IIS (Internet Information Services) SSL certificates के लिए PFX format use करता है — GetHTTPS और ज्यादातर Linux-based tools द्वारा produce किए गए PEM files से different। यह guide आपके certificate को convert करने और IIS 10 पर install करने को cover करती है।
Requirements
- Windows Server जिस पर IIS 10 installed है
- GetHTTPS से certificate files:
cert.pem,privkey.pem,chain.pem - OpenSSL installed (Git for Windows के साथ आता है, या separately install करें)
Step 1: PEM को PFX में Convert करें
IIS directly PEM files नहीं read कर सकता। OpenSSL use करके PFX format में convert करें:
openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem
आपको एक export password set करने के लिए कहा जाएगा — import step के लिए इसे remember रखें।
OpenSSL नहीं है? अगर आपके पास Git for Windows installed है, तो OpenSSL
C:\Program Files\Git\usr\bin\openssl.exeपर है। या slproweb.com/products/Win32OpenSSL.html से download करें।
Certificate format के बारे में ज्यादा info: PEM, PFX, DER explained
Step 2: PFX को IIS में Import करें
- IIS Manager खोलें (
inetmgrrun करें) - Left panel में अपना server name click करें
- Center panel में Server Certificates पर double-click करें
- Right Actions panel में Import… click करें
- अपनी
certificate.pfxfile पर browse करें - Step 1 में set किया गया export password enter करें
- Certificate store choose करें: Web Hosting (या Personal)
- OK click करें
Certificate अब Server Certificates list में दिखाई देता है।
Step 3: अपनी Site से HTTPS Bind करें
- IIS Manager में, left panel में Sites expand करें
- अपनी website पर right-click करें → Edit Bindings…
- Add… click करें
- Set करें:
- Type: https
- Port: 443
- Host name:
yourdomain.com(सभी hostnames के लिए empty छोड़ें) - SSL certificate: वह certificate select करें जो आपने अभी import किया
- OK click करें
- Need पड़ने पर
www.yourdomain.comके लिए repeat करें
Step 4: HTTP को HTTPS पर Redirect करें
URL Rewrite module install करें (अगर पहले से installed नहीं है), फिर अपनी site के web.config में add करें:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Step 5: Verify करें
Browser में https://yourdomain.com खोलें। Certificate details verify करने के लिए padlock पर click करें।
PowerShell verification:
# Check the certificate bound to port 443
netsh http show sslcert
Troubleshooting
”A specified logon session does not exist”
Private key properly import नहीं हुई। PFX file को फिर से export करें:
openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -passout pass:YourPassword
Ensure करें कि PFX matching key + certificate files से बनाया गया था।
Binding dropdown में certificate दिखाई नहीं दे रहा
Import silently fail हो गया हो सकता है। Errors के लिए Event Viewer → Windows Logs → Application check करें। Ensure करें कि PFX password correct है और file corrupt नहीं है।
Binding के बाद “This site is not secure”
Check करें कि certificate chain complete है। PFX conversion (-certfile chain.pem) में chain.pem file included होनी चाहिए। इसके बिना, browsers trust chain verify नहीं कर सकते।
FAQ
क्या मैं IIS के साथ Let’s Encrypt certificate use कर सकता हूं?
हां। Let’s Encrypt certificates IIS सहित किसी भी server के साथ काम करते हैं। एकमात्र extra step PEM को PFX format में convert करना है। GetHTTPS आपको PEM files देता है; ऊपर दिया गया OpenSSL command उन्हें convert करता है।
क्या IIS के लिए Certbot जैसा कोई tool है?
win-acme (पहले letsencrypt-win-simple) Windows/IIS के लिए सबसे popular ACME client है। यह certificate issue करना, PFX conversion, IIS binding, और auto-renewal एक ही tool में handle करता है। अगर आप IIS पर fully automated Let’s Encrypt चाहते हैं तो इसे use करें।
IIS पर renewal कैसे करें?
- GetHTTPS से नया certificate get करें
- PFX में convert करें:
openssl pkcs12 -export -out new.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem - IIS Manager → Server Certificates में नया PFX import करें
- नया certificate use करने के लिए site binding update करें
- Server Certificates से पुराना certificate delete करें
Automated renewal के लिए, win-acme consider करें — यह पूरे cycle को automatically handle करता है।
क्या IIS ECDSA/ECC certificates support करता है?
Windows Server 2016+ पर IIS 10 ECDSA certificates support करता है। GetHTTPS default रूप से ECDSA P-256 generate करता है, जो modern IIS के साथ काम करता है। पुराने IIS versions (8.5 और नीचे) को RSA certificates की need हो सकती है।
क्या मैं एक ही IP पर multiple sites के साथ IIS use कर सकता हूं?
हां। IIS 8+ SNI (Server Name Indication) support करता है, जो एक ही IP address पर multiple SSL certificates allow करता है। HTTPS binding add करते समय, “Require Server Name Indication” check करें और hostname enter करें। हर site का अपना certificate हो सकता है।
Windows पर OpenSSL कैसे find करें?
OpenSSL Windows के साथ default रूप से included नहीं है। Common sources:
- Git for Windows इसे
C:\Program Files\Git\usr\bin\openssl.exeपर include करता है - Chocolatey:
choco install openssl - Win32/Win64 builds: slproweb.com से download करें
Install करने के बाद, इसे अपने PATH में add करें या command में full path use करें।