EP1. Configure IIS to support SSL on windows server 2012

 
วิธีการเซ็ต IIS ให้ Support SSL ใน Windows Server 2012

 


สวัสดีครับ

ไม่ได้เขียน Blog มานาน หลายปี 

เนื่องจากยุ่งกับงาน แต่ต่อไปนี้จะเขียนเพื่อเป็นการบันทึกการทำงานตัวเอง

 

เข้าเรื่องเลยแล้วกัน 

ผมได้โจทย์จากที่ทำงาน ที่ต้องการปรับ Portal Website ภายในบริษัทให้รองรับ SSL 

เนื่องด้วยเรื่องความปลอดภัยและการสนับสนุนของ Web Browser ในปัจจุบัน แต่จริงๆ มันมีความสำคัญอยู่แหล่ะว่า ทำไมเว็บไซต์เราจึงจำเป็นต้องทำ SSL หรือ HTTPS

 

 สิงที่ต้องเตรียม

  1. AD CA (Active Directory Certificate Authority)
  2.  IIS (Internet Information Service) บน Windows Server


วิธีการตั้งค่า 

1. สร้าง Certificate สำหรับ Domain ที่จะเซ็ตใน IIS  (โพสนี้)

2. การตั้งค่า IIS ให้รองรับ SSL หรือ HTTPS  


1. สร้าง Certificate สำหรับ Domain ที่จะเซ็ตใน IIS

หา AD server คุณยังไม่มี AD DA ให้ติดตั้งก่อนน่ะครับ ตามนี้เลย วิธีการเพิ่ม Feature Active Directory Certificate Authority

เริ่มที่เครื่อง IIS ทำการสร้าง Custom Cert Request

 1.1 เปิด Management Console  (MMC) หรือ start -> Run แล้วพิมพ์ mmc กด Enter

MMC
 

1.2. Add Snap-In Certificate ไปที่ File -> Add Or Remove Snap-Ins แล้วเลือก Certificates แล้วกด Add

 เลือกเป็น "Computer Account" แล้วกด Next


 

 แล้ว เลือก "Local Computer..." แล้วกด Finish และกด OK



จะได้หน้าต่างแบบนี้


 

1.3. สร้าง Custom Certificateโดยการคลิกขวาที่ Personal แล้วเลือก All Tasks-> Advance Operations->Create Custom Request..



แล้วกดปุ่ม Next แล้วเลือก "Process without enrollment policy" ดังรูป แล้วกด Next


 

 แล้วเลือก Template เป็น Legacy Key และ Request format : PKCS#10 ดังรูป แล้วกด Next


แล้วจะเห็น Certificate Information แล้วกด Detail \/ ด้านขวามือ จะได้ดังรูป

แล้วกดปุ่ม Properties


จะมี Dialog Certificates Properties

1.4. กำหนดรายละเอียดของ Certificates   (*ก่อนจะใส่ค่าใน Tab อื่นๆ ให้กดปุ่ม Apply ก่อน)


 

- Friendly Name ชื่อที่จะแสดงเมื่อติดตั้ง Cert เหมือนชื่อเล่นเรา

- Description คำอธิบายรายละเอียด Cert 

1.5.กำหนด subject

ตรง Subject name:

ให้เลือก Type ดังนี้

- Common Name ระบุ domain ของเรา

-  Locality ระบุชื่ออำเภอ

- State ระบุจังหวัด

- Country ระบุรหัสประเทศ ไทย (TH) อเมริกา (USA)

- Organize Unit ระบุ OU ของ Domain ของเรา เช่นของผม portal.iwoon.devจะเป็น OU=portal, DC=iwon, DC=dev

 ตรง Alternative name:

 - DNS ระบุ FQDN เช่น portal.iwoon.dev

 

1.6.กำหนด Extensions

- Key usage ให้ Add Digital signature และ Key encipherment และติ๊กเลือก Make these key usage critical

- Extended Key Usage (application policies) ให้ Add Server Authentication

1.7.กำหนด Private Key

- Key Option ให้เลือก Key size: 4096 และติ๊กเลือก Make private key exportable.


เสร็จแล้ว กด OK

1.8. เลือกที่ต้องการ บันทึก request Certificates ไฟล์ และเลือก file format เป็น base64

 

วิธีการขอ Cert ที่เครื่อง AD CA 

สามารทำได้ 2 กรณี

1. กรณีใช้ Web Enrollment (Certsrv)

1.1 เข้า web ด้วย IE http://localhost/certsrv/ (*เปลี่ยน localhost ให้เป็น server AD CA)

เลือก Request a certificate

แล้วเลือก advance certificate request


 

แล้วเลือก submit a certificate request by using a base 64 ...

 

 จะได้ดังรูป



ให้เปิดไฟล์ cert request ที่ บันทึก ไว้ ใน สร้าง Certificate สำหรับ Domain ที่จะเซ็ตใน IIS ขั้นตอน  1.7   ด้วย Notepad แล้ว Copy ทั้งหมด (Ctl+A,Ctl+C)

 

 แล้ววางในเว็บในช่อง Saved Request

แล้วเลือก Certificate Template เป็น Web Hosting ถ้าไม่มี ให้ Enable ขึ้นมาก่อน วิธี Enable Certificate Template สำหรับ Web Hosting

จะได้ดังรูป

 

แล้วกด Submit 

 

แล้ว Download Cert แบบ DER encoded   เพื่อนำไป install ที่เครื่อง IIS server 

2. กรณีใช้ Certreq  (Update 2025-01-14)

2.1 เปิด Command Prompt หรือ CMD ที่เรารู้จักัน

พิมพ์คำสั่งตามด้านล่าง

certreq -submit -attrib "CertificateTemplate:WebServer" "ไฟล์ที่ได้จาก ข้อ 1.8 (iwoon.dev)" issuedcert.cer

เมื่อ Enter จะได้ไฟล์ issuedcert.cer นำไป Install ที่เครื่อง IIS ที่ต้องการได้เลย วิธีการไปต่อ EP2. การตั้งค่า IIS ให้รองรับ SSL หรือ HTTPS 

Bonus!!

สำหรับใครที่ไม่รู้ว่า CA Template  Server ตัวเองมีอะไรบ้าง สามารถดูได้ โดยใช้ คำสั่งด้านล่างนี้ 

 

certutil -CATemplates


Credit: https://sidfishes.wordpress.com/2020/03/06/preventing-browser-security-warnings-for-an-intranet-site-using-an-ssl-certificate-generated-by-a-windows-domain-ca/

แสดงความคิดเห็น