คำตอบสั้น ๆ: สร้าง CSR ใน IIS Manager ติดตั้งใบรับรองจาก CA หรือนำเข้าไฟล์ .pfx แล้วผูก HTTPS Binding พร้อม SNI บน Windows Server และตั้ง Redirect ไปยัง HTTPS
คู่มือนี้อธิบาย SSL Certificate ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
เมื่อซื้อ SSL Certificate แบบเสียเงินจากผู้ออกใบรับรอง (CA) เช่น แบบ OV หรือ EV สำหรับเว็บไซต์ที่รันบน IIS ของ Windows Server ขั้นตอนมีสามช่วง คือ สร้าง CSR (Certificate Signing Request) บนเซิร์ฟเวอร์ ส่ง CSR ให้ CA เพื่อออกใบรับรอง แล้วนำใบรับรองกลับมาติดตั้งและผูก (Binding) กับเว็บไซต์บนพอร์ต 443 บทความนี้ครอบคลุมทั้งสองกรณี คือ สร้าง CSR เองใน IIS และนำเข้าไฟล์ .pfx ที่มีอยู่แล้ว
ถ้าต้องการ SSL ฟรีที่ต่ออายุอัตโนมัติ ดู ขอ SSL ฟรีจาก Let's Encrypt บน IIS ด้วย win-acme แทน
สิ่งที่ต้องเตรียม (SSL Certificate)
- Windows Server 2019 หรือ 2022 ที่ติดตั้ง IIS แล้ว ตาม ติดตั้ง IIS Web Server บน Windows Server
- บัญชีที่อยู่ในกลุ่ม Administrators และเข้าผ่าน Remote Desktop ได้
- เว็บไซต์ใน IIS ที่มี Binding แบบ http พร้อม Host name แล้ว เช่น
www.example.comและโดเมนชี้มาที่เซิร์ฟเวอร์แล้ว ดู ชี้โดเมนไปยังเซิร์ฟเวอร์ด้วย A Record หรือเปลี่ยน Name Server - พอร์ต 443 เปิดใน Windows Defender Firewall ดู เปิด Port บน Windows Defender Firewall หากเซิร์ฟเวอร์มี Security Group หรือ Firewall ภายนอกจากฝั่งผู้ให้บริการ ให้เปิดพอร์ตนั้นเพิ่มด้วย
ขั้นตอนที่ 1: สร้าง CSR ใน IIS Manager (SSL Certificate)
ข้ามขั้นตอนนี้ได้ถ้ามีไฟล์ .pfx อยู่แล้ว (ไปที่ขั้นตอนที่ 3)
- เปิด Internet Information Services (IIS) Manager จาก Server Manager เมนู Tools หรือพิมพ์
inetmgrในหน้าต่าง Run - คลิกชื่อเซิร์ฟเวอร์ในแผง Connections ทางซ้าย (ระดับบนสุด ไม่ใช่ชื่อเว็บไซต์)
- ดับเบิลคลิกไอคอน Server Certificates
- ในแผง Actions ทางขวา คลิก Create Certificate Request...
- กรอกหน้า Distinguished Name Properties
- Common name: ชื่อโดเมนที่ต้องการ เช่น
www.example.com(CA ส่วนใหญ่จะรวมexample.comให้อัตโนมัติ ให้ตรวจกับ CA ที่ใช้) - Organization: ชื่อบริษัทตามที่จดทะเบียน (สำคัญสำหรับแบบ OV และ EV)
- Organizational unit: เช่น IT
- City/locality และ State/province: เช่น Bangkok
- Country/region:
TH
- Common name: ชื่อโดเมนที่ต้องการ เช่น
- หน้า Cryptographic Service Provider Properties เลือก Microsoft RSA SChannel Cryptographic Provider และ Bit length 2048 ขึ้นไป
- ระบุตำแหน่งบันทึกไฟล์ เช่น
C:\certs\www.example.com.csr.txtแล้วกด Finish
ไฟล์ที่ได้เป็นข้อความที่ขึ้นต้นด้วย -----BEGIN NEW CERTIFICATE REQUEST----- ในขั้นตอนนี้ Windows สร้าง Private Key เก็บไว้ในเครื่องนี้แล้ว จึงต้องทำขั้นตอนที่ 2 บน เซิร์ฟเวอร์เครื่องเดียวกัน ห้ามลบ Request ที่ค้างอยู่
ขั้นตอนที่ 2: ส่ง CSR ให้ CA และติดตั้งใบรับรองที่ได้ (SSL Certificate)
คัดลอกข้อความ CSR ทั้งหมดรวมบรรทัด BEGIN และ END ไปวางในหน้าสั่งซื้อหรือหน้า Reissue ของ CA ทำการยืนยันความเป็นเจ้าของโดเมนตามที่ CA กำหนด (อีเมล, DNS TXT Record หรือไฟล์บนเว็บไซต์) เมื่อ CA ออกใบรับรองแล้ว ให้ดาวน์โหลดแบบสำหรับ IIS หรือไฟล์ .cer/.crt พร้อม Intermediate Certificate (CA Bundle)
- คัดลอกไฟล์ใบรับรองไปไว้บนเซิร์ฟเวอร์ เช่น
C:\certs\www.example.com.cer - ใน IIS Manager ที่หน้า Server Certificates คลิก Complete Certificate Request...
- เลือกไฟล์ใบรับรอง ตั้ง Friendly name ที่ระบุโดเมนและปีหมดอายุ เช่น
www.example.com 2027เพื่อแยกออกจากใบเก่าเวลาต่ออายุ - เลือก Certificate store เป็น Web Hosting (เหมาะกับเซิร์ฟเวอร์ที่มีหลายเว็บไซต์) หรือ Personal แล้วกด OK
ถ้า CA ส่ง Intermediate Certificate มาแยก ให้ติดตั้งเข้า Store ของเครื่อง: เปิด certlm.msc ไปที่ Intermediate Certification Authorities แล้วคลิกขวาที่ Certificates เลือก All Tasks และ Import... แล้วเลือกไฟล์ Intermediate
ขั้นตอนที่ 3: นำเข้าไฟล์ .pfx (กรณีมีไฟล์อยู่แล้ว)
ไฟล์ .pfx (หรือ .p12) รวมใบรับรองและ Private Key ไว้ด้วยกัน มักได้มาจากการ Export จากเซิร์ฟเวอร์เดิม หรือ CA บางรายสร้างให้
- ที่หน้า Server Certificates คลิก Import... ในแผง Actions
- เลือกไฟล์
.pfxและใส่รหัสผ่านของไฟล์ - เลือก Certificate store เป็น Web Hosting หรือ Personal
- ช่อง Allow this certificate to be exported ให้เลือกเฉพาะเมื่อจำเป็นต้อง Export ไปเครื่องอื่นอีก
ทำเทียบเท่ากันด้วย PowerShell ที่เปิดแบบ Run as administrator ได้ดังนี้ ระบบจะถามรหัสผ่านของไฟล์
Import-PfxCertificate -FilePath C:\certs\www.example.com.pfx `
-CertStoreLocation Cert:\LocalMachine\WebHosting `
-Password (Read-Host -AsSecureString -Prompt "PFX password")
ผลลัพธ์จะแสดง Thumbprint และ Subject ของใบรับรอง ให้จด Thumbprint ไว้ใช้ในขั้นตอนถัดไปถ้าจะผูก Binding ด้วย PowerShell
ขั้นตอนที่ 4: ผูกใบรับรองกับเว็บไซต์ (HTTPS Binding)
- ใน IIS Manager ขยาย Sites แล้วคลิกเว็บไซต์ที่ต้องการ
- ในแผง Actions คลิก Bindings... แล้วกด Add...
- Type: https, IP address: All Unassigned, Port: 443
- Host name:
www.example.com - เลือก Require Server Name Indication (SNI) เพื่อให้หลายเว็บไซต์ใช้พอร์ต 443 ร่วมกันบน IP เดียวได้
- SSL certificate: เลือกใบรับรองตาม Friendly name แล้วกด OK
- ทำซ้ำอีกหนึ่ง Binding สำหรับ
example.comถ้าใบรับรองครอบคลุมทั้งสองชื่อ
ถ้าต้องการทำด้วย PowerShell (แทนชื่อเว็บไซต์และ Thumbprint ด้วยค่าจริง)
Import-Module WebAdministration
New-WebBinding -Name "example.com" -Protocol https -Port 443 -HostHeader "www.example.com" -SslFlags 1
$binding = Get-WebBinding -Name "example.com" -Protocol https -HostHeader "www.example.com"
$binding.AddSslCertificate("ใส่THUMBPRINTที่นี่", "WebHosting")
-SslFlags 1 คือเปิด SNI และค่า "WebHosting" ต้องตรงกับ Store ที่นำเข้าใบรับรองไว้ (ถ้าใช้ Personal ให้ใส่ "My")