เนื่อง Certificate *.psu.ac.th จาก Comodo เดิมซึ่งกลายเป็น Cert. ที่จัดว่า WEAK แล้ว ทางเจ้าหน้าที่เครือข่ายจึงได้ขอ Cert. ใหม่มา ที่ Strong ขึ้น 🙂 ก็ต้องมานั่งเปลี่ยน Cert. ในเครื่องที่ให้บริการขั้นตอนดังนี้ Download Cert. ใหม่มาซึ่งต้องติดต่อขอไปที่ Net@dmin โดยผ่านช่องทางของ help.psu.ac.th ไฟล์ที่จะโหลดมาใช้งานมีทั้งหมด 3 ไฟล์ได้แก่ STAR_psu_ac_th.ca-bundle, STAR_psu_ac_th.crt และ STAR_psu_ac_th_key.key เมื่อดาวน์โหลดมาเสร็จแล้วให้เอาไปแทนที่เก่าได้เลย ในตัวอย่างนี้จะเก็บไว้ที่ /etc/ssl/private ทีนี้ มาดู config เก่าของ apache2 <IfModule mod_ssl.c> <VirtualHost *:443> ServerName bahamut.psu.ac.th ServerAdmin cc-server-admin@group.psu.ac.th DocumentRoot “/var/www/html” ErrorLog ${APACHE_LOG_DIR}/bahamut.ssl_error_log TransferLog ${APACHE_LOG_DIR}/bahamut.ssl_access_log LogLevel warn SSLEngine on SSLCertificateFile /etc/ssl/private/STAR_psu_ac_th.crt SSLCertificateKeyFile /etc/ssl/private/STAR_psu_ac_th.key SSLCertificateChainFile /etc/ssl/private/STAR_psu_ac_th.ca-bundle RewriteEngine On RewriteRule /avl https://licensing.psu.ac.th <Directory /var/www/licensing> AllowOverride All Order deny,allow Deny from all Allow from 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 </Directory> </VirtualHost> </IfModule> จะเห็นว่าไฟล์ชื่อไม่ตรงอยู่ไฟล์หนึ่งคือ STAR_psu_ac_th.key ก็เปลี่ยนชื่อให้ตรง เป็นอันเสร็จ แต่ … เนื่องจากเป็น Cert. ใหม่ เพื่อเพิ่มความแข็งแรง เจ้าหน้าที่เครือข่ายจึงได้กำหนด Passphrase ไว้ด้วย ต้องแก้ไขแฟ้ม /etc/apache2/mods-enabled/ssl.conf ในบรรทัดที่เขียนว่า SSLPassPhraseDialog exec:/usr/share/apache2/ask-for-passphrase ให้แก้ /usr/share/apache2/ask-for-passphrase เป็น /etc/ssl/private/passphrase-script แล้วสร้างแฟ้ม /etc/ssl/private/passphrase-script มีข้อความว่า #!/bin/sh echo “passphrase ที่ได้รับแจ้งจาก Net@dmin” chmod +x /etc/ssl/private/passphrase-script และทดสอบ script ด้วยว่าผลลัพธ์ที่ได้ตรงกับ passphrase ที่ Net@dmin แจ้งมา restart apache2 ด้วยคำสั่ง sudo service apache2 restart ถ้า passphrase ที่ใส่ไว้ในแฟ้ม passphrase-script ถูกต้องจะ restart สำเร็จ เป็นอันเสร็จ สิ่งที่ต้องแก้เพื่อให้ได้ A+ ในการทดสอบกับเว็บ https://www.ssllabs.com/ssltest/analyze.html แก้ไขแฟ้ม /etc/apache2/mods-enabled/ssl.conf โดยแก้ไข/เพิ่ม ข้อความดังต่อไปนี้ SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES: RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS SSLHonorCipherOrder on SSLProtocol all -SSLv3 -SSLv2 SSLCompression off sudo a2enmod headers เพื่อให้ module headers ของ apache2 ทำงาน แก้ไขแฟ้มของไซต์ที่เปิด ssl ไว้ จากตัวอย่างนี้คือ /etc/apache2/sites-enabled/licensing-ssl.conf โดยเพิ่มข้อความว่า Header add Strict-Transport-Security “max-age=15768000;includeSubDomains” ตัวอย่าง <IfModule mod_ssl.c> <VirtualHost *:443> ServerName licensing.psu.ac.th ServerAdmin cc-server-admin@group.psu.ac.th DocumentRoot “/var/www/html/avl” ErrorLog ${APACHE_LOG_DIR}/licensing.ssl_error_log TransferLog ${APACHE_LOG_DIR}/licensing.ssl_access_log LogLevel warn SSLEngine on Header