Mr.Green

สร้าง บันทึกและแบ่งปัน

พิมพ์ค้นหาบทความได้ในช่องค้นหา

ปรับแต่ง 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

บางส่วนอ้างอิงจากเว็บไซต์ นี้ และเว็บไซต์นี้

Tags:  ,

Leave a Reply

Your email address will not be published. Required fields are marked *