ก่อนจะทำตามบทความนี้ ทางที่ดีควรจะมีความรู้เรื่อง virtual host ก่อน อ่านได้ที่บทความนี้ วิธีสร้าง Virtual host เมื่อติดตั้ง SSL แล้วเราจะสามารถใช้งานเว็บในรูปของ https ได้ ในบทความนี้ผมใช้ appserv 2.5.10 ถึงเป็นเวอร์ชั่น 6 ผมก็ว่าวิธีการคงไม่แตกต่างกัน (เดาล้วนขอบอก ไม่มีเวลาทดลอง ใครว่างก็ทดลองหน่อยละกัน) กระบวนการมันจะแบ่งเป็นขั้นตอนหลักๆตามนี้ครับ
- สร้างใบเซอร์ทิฟิเคท (เขียนถูกหรือเปล่าไม่รู้ certificate)
- เรียกใช้งาน
สร้างใบเซอร์ทิฟิเคท
ตัว appserv มันมาพร้อมกับโปรแกรมที่ชื่อ openssl ตัวนี้แหละที่ไว้ใช้สร้างใบเซอร์ แต่ต้องเรียกผ่าน DOS เริ่มเลยละกันครับ
1. เปิด command prompt (ชื่ออย่างเป็นทางการของไอ้หน้าต่างดำๆ) ขึ้นมา ไปที่
C:\AppServ\Apache2.2\conf |
2. พิมพ์คำสั่งตามข้างล่าง เพื่อสร้างไฟล์ csr กับไฟล์ pem ผมตั้งชื่อมันทั้งคู่ว่า wordpress (งานนี้ผมรันเวิร์ดเพรส ตั้ง virtual host ว่า wordpress) เมื่อมันสร้างไฟล์เสร็จมันจะให้เราป้อนรหัสผ่าน มันจะเอาไปเข้าหรัสมั้ง ตั้งไปตามที่อยากจะตั้งได้เลย
..\bin\openssl req -config openssl.cnf -new -out wordpress.csr -keyout wordpress.pem |
3. ในขั้นตอนนี้มันจะให้ป้อนข้อมูลหลายอย่าง ท่านสามารถ enter ผ่านๆไปได้ยกเว้น 2 ตัว ต้องป้อน
PEM Passphrase: ป้อนรหัสผ่าน ตั้งเป็นอะไรก็ได้
Common Name: ป้อนชื่อโฮส (ชื่อที่เราตั้งเป็น virtual host)
4. enter มาเรื่อยๆ จนมันไม่ถามอะไรแล้ว
5. ป้อนคำสั่งตามด้านล่าง
..\bin\openssl rsa -in wordpress.pem -out wordpress.key |
6. ป้อนคำสั่งตามด้านล่าง
..\bin\openssl x509 -in wordpress.csr -out wordpress.crt -req -signkey wordpress.key -days 365 |
เป็นอันว่ากระบวนการสร้างใบเซอร์เราเรียบร้อย
เรียกใช้งาน
1. เปิดไฟล์ httpd.conf ขึ้นมา (เก็บอยู่ที่ C:\AppServ\Apache2.2\conf)
2. เอาเครื่องหมาย # หน้า LoadModule ssl_module modules/mod_ssl.so ออก
3. เอาเครื่องหมาย # หน้า Include conf/extra/httpd-ssl.conf ออก
4. เปิดไฟล์ httpd-ssl.conf ขึ้นมา (เก็บอยู่ที่ C:\AppServ\Apache2.2\conf\extra)
5. แก้ไขบรรทัด 62 เป็น
SSLSessionCache "shmcb:C:/Appserv/Apache2.2/logs/ssl_scache(512000)" |
6. ปรับตั้งค่าชื่อโฮสต์กับที่เก็บไฟล์ ตรงนี้แหละที่บอกว่าจะต้องเข้าใจเรื่อง virtual host ก่อน
7. ชี้พาธไปยังใบเซอร์ของเรา (ดูเอาในภาพนะ ขี้เกียจพิมพ์)
รีสตาร์ท apache ครับ แล้วลองเข้า https://www.wordpress.local
อ้างอิง
http://stackoverflow.com/questions/4221874/how-do-i-create-https-for-localhost-apache
noktualek says:
02/03/2558 at 02/03/2558
ผมทำแล้วเจอ error
D:\Temp\wamp\bin\apache\apache2.4.9\conf>..\bin\openssl req -config openssl.cnf -new -out wordpress.csr -keyout wordpress.pem
WARNING: can’t open config file: C:\vc11_deps\repo\winlibs_openssl/install_x64/openssl.cnf
Loading ‘screen’ into random state – done
Generating a 1024 bit RSA private key
….++++++
..++++++
writing new private key to ‘wordpress.pem’
Enter PEM pass phrase:
5348:error:28069065:lib(40):UI_set_result:result too small:.\crypto\ui\ui_lib.c:869:You must type in 4 to 511 characters
5348:error:0906406D:PEM routines:PEM_def_callback:problems getting password:.\crypto\pem\pem_lib.c:111:
5348:error:0907E06F:PEM routines:DO_PK8PKEY:read key:.\crypto\pem\pem_pk8.c:130:
วัชรเมธน์ ชิษณุคุปต์ ศรีเนธิโรทัย says:
03/03/2558 at 03/03/2558
มันบอก can’t open config file แสดงว่าไฟล์ที่ต้องการเปิดไม่มีตัวตน ให้ลองเข้าไปดูไฟล์ที่มันแจ้งมาว่า ไม่มีจริงหรือเปล่า ถ้าไม่มีจริงก็อาจจจะหามาเพิ่มเติมในกูเกิล แต่ถ้าท่านใช้ xampp มันจะทำได้โดยไม่ติดปัญหาใดๆ