ปรับแต่ง let’s encrypt บน FreeBSD
เริ่มขั้นตอนการคอนฟิก ใน FreeBSD
ปรับแต่ง let’s encrypt บน FreeBSD
Let’s Encrypt คือ ผู้ออกใบรับรอง หรือที่เรียกว่า Certificate Authority (CA) ที่ให้บริการในรูปแบบง่าย และมีการติดตั้ง ใบรับรอง TLS/SSL (TLS/SSL certificates) ฟรี นั้นหมายความว่า เว็บไซต์ของเรา ในการเรียกใช้งานต้องมีการเข้ารหัสก่อน โดยจะอยู่ในลักษณะ https://
ในการดำเนินการติดต้ง เริ่มจากต้องสร้างพื้นที่สำหรับเก็บไฟล์คอนฟิกก่อน
#mkdir /usr/local/etc/apache24/sites-available
#mkdir /usr/local/etc/apache24/sites-enabled
ใช้คำสั่งเพื่อแก้ไข httpd.conf
#vi /usr/local/etc/apache24/httpd.conf
เพิ่มค่าในไฟล์คอนฟิกของ apache โดยให้เพิ่มค่าไว้ท้ายสุดของแถว
IncludeOptional etc/apache24/sites-enabled/*.conf
เพื่อเปิดค่าของ TLS module สำหรับ Apache โดยการสร้างไฟล์ชื่อ 020_mod_ssl.conf ใน ไดเร็กเตอรี่ modules.d
คำสั่งในการสร้าง file
Vvi /usr/local/etc/apache24/modules.d/020_mod_ssl.conf
แล้วเพิ่มข้อมูล ตามตัวอย่างข้างล่าง ลงไป (Add following lines to file 020_mod_ssl.conf.)
Listen 443
SSLProtocol ALL -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog builtin
SSLSessionCacheTimeout 300
เปิดค่าให้ SSL ทำงานโดยเอาเครื่องหมาย # หน้า SSL module ในไฟล์ httpd.conf ออก
from /usr/local/etc/apache24/httpd.conf file by removing the hashtag from the beginning of the following line as illustrated below:
ใช้คำสั่งเพื่อแก้ไข ไฟล์ httpd.conf
#vi /usr/local/etc/apache24/httpd.conf
เอาเครื่องหมาย # ออกหน้า mod_ssl.so
LoadModule ssl_module libexec/apache24/mod_ssl.so
#LoadModule session_dbd_module libexec/apache24/mod_session_dbd.so
#LoadModule slotmem_shm_module libexec/apache24/mod_slotmem_shm.so
#LoadModule slotmem_plain_module libexec/apache24/mod_slotmem_plain.so
LoadModule ssl_module libexec/apache24/mod_ssl.so
#LoadModule dialup_module libexec/apache24/mod_dialup.so
#LoadModule http2_module libexec/apache24/mod_http2.so
#LoadModule proxy_http2_module libexec/apache24/mod_proxy_http2.so
สร้าง ไฟล์คอนฟิกของ TLS สำหรับโดเมนของเราในไฟล์ที่เราเริ่มสร้างครั้งแรก sites-available directory
create the TLS configuration file for your domain in sites-available directory, preferably with the name of your domain, as presented in the below excerpt:
ใช้คำสั่งนี้ เพื่อสร้างไฟล์
#vi /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf
คัดลอก ข้อมูลข้างล่าง ลงไปวาง แต่ต้องแก้ค่าโดเมน ให้ตรงกับโดเมนของเราเอง ตรงตัวอักษร สีน้ำเงิน ต้องแก้ให้เป็นของเรา
<VirtualHost *:443>
ServerName www.yourdomain.com
ServerAlias yourdomain.com
DocumentRoot "/usr/local/www/apache24/data/"
SSLEngine on
SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem"
SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem"
SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/www/apache24/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/var/log/apache/httpd-ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
<Directory "/usr/local/www/apache24/data/">
Options Indexes FollowSymLinks MultiViews
#AllowOverride controls what directives may be placed in .htaccess files.
AllowOverride All
#Controls who can get stuff from this server file
Require all granted
</Directory>
ErrorLog "/var/log/apache/yourdomain.ssl-error.log"
CustomLog "/var/log/apache/yourdomain.ssl-access_log" combined
</VirtualHost>
ให้เปลี่ยนค่าโดย ตรง www.domain.com ให้เปลี่ยนเป็นของเราเอง
ติดตั้งผ่าน Package
เริ่มต้นจากต้องติดตั้ง py37-certbot ก่อน กรณีติดตั้งผ่าน Package ให้ใช้คำสั่งนี้
#pkg install py38-certbot
หรือติดตั้งผ่าน port แนะนำติดตั้งผ่านตัวนี้
#cd /usr/ports/security/py-certbot/ && make install clean
ขั้นตอนการสร้าง Certificate ให้กับ โดเมนของเรา (In order to generate a certificate for your domain
#certbot certonly --webroot -w /usr/local/www/apache24/data/ -d www.yourdomain.com -d www.yourdomain.com
Warning, Tip, Notice, or Information.
สำหรับขั้นตอนนี้ ให้ระวัง ชื่อ host ในเครื่อง จะต้องกำหนดค่า ใน A record ตอนกำหนดค่าของโดเมน กรณีมีการชื้มายังไอพี อย่างเช่นตามตัวอย่างข้างบน www.domain.com www คือชื่อโอสต์ที่เราต้องกำหนด และต้องกำหนดให้ตรงกับ ค่า A record กรณี เราตั้งชื่ออื่น ไม่ได้ตั้ง www ก็ต้องกำหนดให้ถูกต้อง
ใช้คำสั่งตรวจสอบไฟล์ที่สร้างขึ้นและเก็บอยู่ตามชื่อโดเมนของเรา เพื่อตรวจสอบว่าเส้นทางตรงกันไหม กับที่เราสร้างไฟล์คอนฟิกที่ชื่อ /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf
#ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/
enable the TLS configuration file, by creating a symlink for your domain TLS configuration file to sites-enabled directory คือสร้างลิงค์ให้เรียกจาก sites-enabled ได้
#ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/
ทดสอบว่า การคอนฟิก Apache ถูกต้องไหม
#apachectl -t
หากทดสอบแล้ว เจอปัญหาข้อความข้างล่าง
(2)No such file or directory: AH02291: Cannot access directory ‘/var/log/apache/’ for error log of vhost defined at /usr/local/etc/apache24/sites-enabled/bsd.lan-ssl.conf:1
AH00014: Configuration check failed
ให้แก้ไข โดยใช้คำสั่ง ดังนี้
เข้าไปยัง ไดเร็กเตอรี่ log
#cd /var/log/
สร้างไดเร็ดเตอรี่ ชื่อ apache
#mkdir apache
เปลี่ยนสิทธ์การเข้าถึง
#chmod -R 744 apache/
ทดสอบใหม่อีกครั้ง
a#pachectl -t
หากผ่าน ก็สั่ง รีสตาร์ท apacne
#service apache24 restart
บางส่วนอ้างอิงจากเว็บไซต์ นี้ และเว็บไซต์นี้