ปรับแต่ง 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 |
บางส่วนอ้างอิงจากเว็บไซต์ นี้ และเว็บไซต์นี้