วิธีติดตั้งและกำหนดค่า Apache ด้วย Let's Encrypt TLS/SSL บน Ubuntu 20.04


อาปาเช่, ที่รู้จักกันว่า เซิร์ฟเวอร์ Apache HTTPเป็นหนึ่งในแอปพลิเคชันเว็บเซิร์ฟเวอร์ที่ใช้กันอย่างแพร่หลายมากที่สุดในโลกในช่วงสองสามทศวรรษที่ผ่านมา เป็นซอฟต์แวร์เว็บแอปพลิเคชั่นโอเพ่นซอร์สฟรีที่ดูแลโดย มูลนิธิซอฟต์แวร์ Apache. Apache มอบคุณสมบัติอันทรงพลังด้วยโมดูลที่สามารถโหลดได้แบบไดนามิก การผสานรวมกับซอฟต์แวร์อื่นๆ ได้ง่าย และการจัดการไฟล์สแตติก รวมถึงคุณสมบัติยอดนิยมอื่นๆ

ในบทช่วยสอนต่อไปนี้ คุณจะได้เรียนรู้ วิธีการติดตั้ง Apache Web Server บน Ubuntu 20.04

เบื้องต้น

  • ระบบปฏิบัติการที่แนะนำ: อูบุนตู 20.04 - ไม่จำเป็น (Ubuntu 21.04 และ Linux Mint 20)
  • บัญชีผู้ใช้: บัญชีผู้ใช้ที่มีการเข้าถึง sudo หรือรูท

กำลังอัปเดตระบบปฏิบัติการ

ก่อนอื่น อัปเดตของคุณ อูบุนตู ระบบปฏิบัติการเพื่อให้แน่ใจว่าแพ็คเกจที่มีอยู่ทั้งหมดเป็นปัจจุบัน:

sudo apt update && sudo apt upgrade -y

รูทหรือ Sudo Access

ตามค่าเริ่มต้น บัญชีที่สร้างด้วย Ubuntu จะให้สถานะ sudo ยังคง สมมติว่าคุณต้องระบุบัญชีเพิ่มเติม การเข้าถึง sudo/root ในกรณีนั้น คุณต้องมีสิทธิ์เข้าถึง รหัสผ่านรูท ใช้ คำสั่ง su หรือเยี่ยมชมบทช่วยสอนของเราที่ วิธีเพิ่มผู้ใช้ใน Sudoers บน Ubuntu.

วิธีที่ 1 ติดตั้ง Apache จาก Ubuntu Repository

ตัวเลือกแรกในการติดตั้ง Apache คือการใช้ที่เก็บเริ่มต้นของ Ubuntu สิ่งนี้มีประโยชน์มากกว่าสำหรับผู้ใช้ส่วนใหญ่ เนื่องจากมีความเสถียรและปลอดภัยมาก

ในการติดตั้ง Apache ให้เปิดเทอร์มินัลของคุณและรันคำสั่งต่อไปนี้:

sudo apt install apache2 -y

ถัดไป ให้ตรวจสอบว่าการติดตั้งสำเร็จโดยตรวจสอบเวอร์ชันบิลด์ของ Apache:

sudo apache2 --version

ตัวอย่างผลลัพธ์:

Server version: Apache/2.4.51

ตรวจสอบเพื่อดูว่า Apache2 ทำงานอย่างถูกต้องโดยใช้สิ่งต่อไปนี้ systemctl คำสั่ง:

systemctl status apache2

ตัวอย่างผลลัพธ์หากทุกอย่างเรียบร้อย:

วิธีติดตั้งและกำหนดค่า Apache ด้วย Let's Encrypt TLS/SSL บน Ubuntu 20.04

วิธีที่ 2. ติดตั้ง Apache ล่าสุดจากOndřej Surý PPA

โดยค่าเริ่มต้น Apache จะพร้อมใช้งานภายใน ที่เก็บซอฟต์แวร์ของ Ubuntuซึ่งทำให้ง่ายต่อการติดตั้ง อย่างไรก็ตาม เช่นเดียวกับที่เก็บส่วนใหญ่ในเวอร์ชัน Ubuntu LTS ก็มักจะขาดสิ่งที่เป็นอยู่ในปัจจุบัน ไม่มากนักสำหรับความเสี่ยงด้านความปลอดภัย ยังขาดคุณสมบัติและการปรับปรุงที่ใหม่กว่า

ขอแนะนำให้ติดตั้ง Ubuntu ออนเดจ ซูรี เวอร์ชันของ Apache 2ซึ่งเป็นรุ่นล่าสุดและสร้างไว้ล่วงหน้าด้วยโมดูลที่ใช้กันอย่างแพร่หลายเป็นพิเศษ

ขั้นแรก เพิ่ม Ondřej Surý PPA สำหรับ Ubuntu ดังนี้:

sudo add-apt-repository ppa:ondrej/apache2 -y && sudo apt update

ตอนนี้คุณสามารถติดตั้งแพ็คเกจ Apache 2 ด้วยคำสั่งต่อไปนี้:

sudo apt install apache2

การติดตั้งจะติดตั้งการพึ่งพาทั้งหมดที่จำเป็น

หากคุณไม่ต้องการใช้ PPA คุณสามารถข้ามการเพิ่มและติดตั้ง Apache 2 จากที่เก็บของ Ubuntu

เมื่อติดตั้งแล้ว ให้ยืนยันเวอร์ชันที่รันคำสั่งต่อไปนี้:

apache2 -v

ตัวอย่างผลลัพธ์:

Server version: Apache/2.4.51 (Ubuntu)

โปรดทราบว่าที่เก็บทั้งสองอยู่ในเวอร์ชันเดียวกันในขณะที่ทำการสอน เนื่องจากมีการอัปเดต CVE อย่างเร่งด่วน โดยปกติ Ondřej Surý PPA จะอยู่เหนือ Ubuntu 20.04 ที่เป็นค่าเริ่มต้นตลอดเวลา

ตรวจสอบเพื่อดูว่า Apache2 ทำงานอย่างถูกต้องโดยใช้สิ่งต่อไปนี้ systemctl คำสั่ง:

sudo systemctl status apache2

ตัวอย่างผลลัพธ์หากทุกอย่างเรียบร้อย:

วิธีติดตั้งและกำหนดค่า Apache ด้วย Let's Encrypt TLS/SSL บน Ubuntu 20.04

กำหนดค่า UFW Firewall สำหรับ Apache

หลังจากติดตั้งเว็บเซิร์ฟเวอร์ Apache 2 คุณจะต้องแก้ไข กฎ UFW เพื่ออนุญาตการเข้าถึงเว็บพอร์ตเริ่มต้นจากภายนอก โชคดีที่ระหว่างการติดตั้ง Apache จะลงทะเบียนตัวเองกับ UFW เพื่อให้โปรไฟล์บางส่วนที่สามารถใช้เปิดหรือปิดการเข้าถึงได้ ทำให้กำหนดค่าได้ง่ายและรวดเร็ว

ขั้นแรก แสดงรายการโปรไฟล์แอปพลิเคชันเพื่อดูโปรไฟล์ Apache ที่พร้อมใช้งานโดยคำสั่งต่อไปนี้:

sudo ufw app list

ตัวอย่างผลลัพธ์:

Available applications:
  Apache
  Apache Full
  Apache Secure

จากผลลัพธ์ด้านบน คุณมีตัวเลือกโปรไฟล์สามแบบให้เลือก เพื่อทำลายมันลง, อาปาเช่ ทำงานบนพอร์ต 80 (HTTP) Apache ปลอดภัย ทำงานบนพอร์ต 443 (HTTPS) และ อาปาเช่เต็ม คือการยอมให้ทั้งสองอย่างรวมกัน ที่พบบ่อยที่สุดคือ Apache Full หรือ Apache Secure

สำหรับบทช่วยสอน เนื่องจากเรายังไม่ได้ตั้งค่า SSL เราจะเปิดใช้งานโปรไฟล์ (Apache) ด้วยคำสั่งต่อไปนี้:

sudo ufw allow 'Apache'

ตัวอย่างผลลัพธ์:

Rule added
Rule added (v6)

ดังที่กล่าวข้างต้น มีการเพิ่มกฎสำหรับทั้ง IPV4 และ IPV6 หลังจากนั้น คุณสามารถปิดใช้งานโปรไฟล์นี้และเปิดใช้งานการรักษาความปลอดภัยเท่านั้น หรือปิดใช้งานกฎ Apache และใช้กฎ Apache แบบเต็มแทน

ตรวจสอบ Apache Web Server

เมื่อคุณได้ติดตั้งและกำหนดค่าไฟร์วอลล์ UFW แล้ว ก็ถึงเวลาทดสอบเพื่อดูว่าสามารถเข้าถึง Apache 2 ได้หรือไม่ และทำงานอย่างถูกต้องโดยการขอหน้า

คุณสามารถเข้าถึงหน้าเริ่มต้นของ Apache เริ่มต้นเพื่อตรวจสอบว่าซอฟต์แวร์ทำงานอย่างถูกต้องผ่านที่อยู่ IP ของเซิร์ฟเวอร์ของคุณหรือไม่ หากต้องการทราบสิ่งนี้ หากคุณไม่ทราบ ให้ใช้คำสั่งต่อไปนี้ด้านล่าง:

hostname -I

คุณควรได้รับที่อยู่ IP ภายในที่เซิร์ฟเวอร์เปิดอยู่ดังตัวอย่าง:

###Example Only###
192.168.50.15 

คุณอาจได้ผลลัพธ์กลับมา 2 ถึง 3 รายการ ลองใช้แต่ละรายการจนกว่าคุณจะพบที่อยู่ IP ที่ถูกต้อง

หากคุณต้องการที่อยู่ IP สาธารณะของคุณ (ภายนอก) ให้ใช้คำสั่งต่อไปนี้แทน:

curl -4 icanhazip.com

คุณอาจต้องติดตั้งแพ็คเกจ CURL หากไม่มี เมื่อต้องการทำสิ่งนี้ ให้รันคำสั่งต่อไปนี้:

sudo apt install curl -y

เมื่อคุณมีที่อยู่ IP ของเซิร์ฟเวอร์แล้ว ให้เปิดอินเทอร์เน็ตเบราว์เซอร์ที่คุณชื่นชอบแล้วป้อนข้อมูลต่อไปนี้:

http://your_server_ip

คุณควรได้รับหน้าต่อไปนี้ในอินเทอร์เน็ตเบราว์เซอร์ของคุณ:

วิธีติดตั้งและกำหนดค่า Apache ด้วย Let's Encrypt TLS/SSL บน Ubuntu 20.04

ขอแสดงความยินดี คุณได้ติดตั้งเว็บเซิร์ฟเวอร์ Apache 2 และกำลังทำงานอยู่

ขั้นตอนต่อไปคือการตั้งค่าโฮสต์เสมือน

สร้างและหรือกำหนดค่าโฮสต์เสมือนสำหรับ Apache

เมื่อใช้เว็บเซิร์ฟเวอร์ Apache คุณสามารถสร้างโฮสต์เสมือนเพื่อจัดการการกำหนดค่าสำหรับโดเมนมากกว่าหนึ่งโดเมนที่ทำงานบนเซิร์ฟเวอร์เดียว หากคุณเคยใช้ Nginx มาก่อน จะเท่ากับบล็อกเซิร์ฟเวอร์ ในตัวอย่างด้านล่าง บทช่วยสอนจะสร้างโดเมน example-domain.com ซึ่งคุณจะแทนที่ด้วยชื่อโดเมนของคุณ

โดยค่าเริ่มต้น Apache บน Ubuntu 20.04 มีหนึ่งบล็อกเซิร์ฟเวอร์ที่เปิดใช้งานโดยค่าเริ่มต้นที่ได้รับการกำหนดค่าให้ให้บริการเอกสารจาก / var / www / html ไดเร็กทอรี หากคุณกำลังใช้งานเว็บไซต์เดียว คุณสามารถแก้ไขบล็อกเซิร์ฟเวอร์นี้ให้เหมาะกับของคุณเองได้ อย่างไรก็ตาม หากคุณโฮสต์เว็บไซต์หลายแห่ง คุณต้องสร้างโครงสร้างไดเรกทอรีใหม่สำหรับโดเมนต่างๆ ของคุณ

สร้างและหรือกำหนดค่าไดเรกทอรี

อันดับแรก ปล่อย / var / www / html ไดเร็กทอรีเหมือนเดิมเป็นไดเร็กทอรีเริ่มต้น จากนั้นสร้างไดเร็กทอรีใหม่ เช่น example-domain.com ดังนี้:

sudo mkdir /var/www/example_domain

ขั้นตอนต่อไปคือการกำหนดความเป็นเจ้าของไดเร็กทอรีด้วยตัวแปรสภาพแวดล้อม $USER:

sudo chown -R $USER:$USER /var/www/example_domain

โดยปกติ ควรตั้งค่าการอนุญาตรูทของเว็บอย่างถูกต้อง และคุณสามารถตรวจสอบได้โดยใช้ -ls l คำสั่ง:

-ls l /var/www/example_domain
ls -l /var/www/example_domain

ตัวอย่างผลลัพธ์:

drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain

อย่างที่คุณเห็นเราได้รับอนุญาตจาก drwxr-xr-x, ซึ่งเทียบเท่ากับ chmod ฮิต. หากคุณไม่ได้ตั้งค่าการอนุญาตนี้ ให้รันคำสั่งต่อไปนี้:

sudo chmod -R 755 /var/www/example_domain

ตอนนี้สร้างหน้าตัวอย่าง index.html โดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ บทช่วยสอนจะใช้นาโนดังนี้:

sudo nano /var/www/example_domain/index.html

ในไฟล์ ให้คัดลอกและวางรหัสต่อไปนี้:

<html>
    <head>
        <title>Welcome to Website!</title>
    </head>
    <body>
        <h1>Success! The virtual host is working! You did not mess it up.</h1>
    </body>
</html>

บันทึกไฟล์ (CTRL+O)แล้วออก (CTRL+X).

สร้างโฮสต์เสมือน

ตอนนี้คุณได้สร้างหน้า Landing Page และตั้งค่าความเป็นเจ้าของและการอนุญาตที่ถูกต้องแล้ว ตอนนี้คุณสามารถดำเนินการสร้างไฟล์โฮสต์เสมือนได้ โดยค่าเริ่มต้น ไฟล์โฮสต์เสมือนทั้งหมดจะต้องอยู่ที่ / / etc / apache2 / เว็บไซต์ที่มีอยู่ ไดเรกทอรี

ขั้นแรก ใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบเพื่อสร้างไฟล์การกำหนดค่าที่อยู่ที่ /etc/apache2/sites-available/example_domain.conf ที่ด้านล่าง:

sudo nano /etc/apache2/sites-available/example_domain.conf

ตอนนี้ คัดลอกและวางสิ่งต่อไปนี้ลงในไฟล์บล็อกการกำหนดค่า หมายเหตุเพื่อแทนที่ your ชื่อเซิร์ฟเวอร์, ชื่อเซิร์ฟเวอร์, และ รูทเอกสาร ด้วยตัวคุณเอง:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

หมายเหตุ อย่าลืมเปลี่ยนคำสั่งเซิร์ฟเวอร์ที่จำเป็นเป็นของคุณเอง

บันทึกไฟล์การกำหนดค่าโดยใช้ (CTRL+O) และออกด้วย (CTRL+X).

เปิดใช้งานโฮสต์เสมือน

เมื่อคุณมีไฟล์การกำหนดค่าโฮสต์เสมือนพร้อมแล้ว ก็ถึงเวลาเปิดใช้งาน Apache ใช้เครื่องมือต่างจาก Nginx ซึ่งแตกต่างจาก Nginx ตรงที่คุณจะต้องสร้างลิงก์สัญลักษณ์โดยใช้คำสั่ง ln -s ซึ่ง Apache จะใช้เครื่องมือตามที่แสดงในบทช่วยสอนด้านล่าง:

ขั้นแรก ปิดการใช้งานไฟล์บล็อกเซิร์ฟเวอร์ที่ติดตั้งเริ่มต้นที่มีอยู่ 000-default.conf ด้วยคำสั่ง a2dissite:

sudo a2dissite 000-default.conf

ตอนนี้เปิดใช้งานไฟล์โฮสต์เสมือนของคุณด้วย เอทูเอนไซต์ คำสั่ง:

sudo a2ensite example_domain.conf

ตอนนี้ เช่นเดียวกับแอปพลิเคชันเว็บเซิร์ฟเวอร์ส่วนใหญ่ Apache มี a วิ่งแห้ง การทำงาน. ก่อนถ่ายทอดสด ให้ทดสอบไฟล์การกำหนดค่าของคุณโดยใช้คำสั่งต่อไปนี้:

sudo apache2ctl configtest

หากทุกอย่างถูกต้อง ผลลัพธ์ตัวอย่างควรเป็น:

Syntax OK

ตอนนี้รีสตาร์ทเว็บเซิร์ฟเวอร์ Apache เพื่อให้โฮสต์เสมือนใหม่ของคุณใช้งานได้โดยใช้คำสั่งต่อไปนี้:

sudo systemctl restart apache2

ขณะนี้ Apache ควรให้บริการหน้า Landing Page ที่คุณสร้างขึ้นสำหรับโดเมนใหม่ของคุณ เพื่อทดสอบสิ่งนี้ ให้เปิดอินเทอร์เน็ตเบราว์เซอร์ของคุณและพิมพ์ชื่อโดเมนของคุณ HTTP://example_domain ที่ที่คุณควรได้รับหน้า Landing Page ต่อไปนี้ที่คุณสร้างขึ้นในไฟล์ index.html:

วิธีติดตั้งและกำหนดค่า Apache ด้วย Let's Encrypt TLS/SSL บน Ubuntu 20.04

ขอแสดงความยินดี คุณได้สร้างโฮสต์เสมือนของคุณสำเร็จและทำให้มันทำงานบนโดเมนของคุณได้สำเร็จ

รักษาความปลอดภัย Apache ด้วย Let's Encrypt SSL ฟรีใบรับรอง

ตามหลักการแล้ว คุณจะต้องการเรียกใช้ Apache บน HTTPS โดยใช้ใบรับรอง SSL. วิธีที่ดีที่สุดคือใช้ มาเข้ารหัสกันเถอะ ผู้ออกใบรับรองอิสระ อัตโนมัติ และเปิดซึ่งดำเนินการโดย กลุ่มวิจัยความปลอดภัยทางอินเทอร์เน็ตที่ไม่แสวงหากำไร (ISRG).

ก่อนอื่นให้ติดตั้ง แพ็คเกจใบรับรอง ดังต่อไปนี้:

sudo apt install python3-certbot-apache -y

เมื่อติดตั้งแล้ว ให้รันคำสั่งต่อไปนี้เพื่อเริ่มสร้างใบรับรองของคุณ:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

นี่คือการตั้งค่าที่เหมาะสมที่สุดซึ่งรวมถึงการบังคับเปลี่ยนเส้นทาง HTTPS 301 ส่วนหัว Strict-Transport-Security และ OCSP Stapling เพียงตรวจสอบให้แน่ใจว่าได้ปรับเปลี่ยนอีเมลและชื่อโดเมนตามความต้องการของคุณ

ตอนนี้ URL ของคุณจะเป็น https://www.example.com แทน HTTP://www.example.com.

หมายเหตุ หากคุณใช้ตัวเก่า HTTP URLโดยอัตโนมัติจะเปลี่ยนเส้นทางไปที่ HTTPS.

การจัดการบริการ Apache

เมื่อคุณมี Apache ทำงานบนเซิร์ฟเวอร์เรียบร้อยแล้ว ประเด็นสำคัญด้านการจัดการมีดังนี้

บันทึกเซิร์ฟเวอร์ Apache

บันทึกเซิร์ฟเวอร์ Apache สามารถพบได้ในไดเร็กทอรี /var/log/apache2/ กับ access.log และ error.log ด้วยความเคารพในการเข้าถึงเริ่มต้นและชื่อข้อผิดพลาดที่กำหนด ซึ่งสามารถเปลี่ยนเป็นชื่ออื่นในไฟล์การกำหนดค่าโฮสต์เสมือนของคุณได้ในอนาคต

คำสั่ง Apache

คำสั่งต่อไปนี้ที่คุณจะใช้อย่างไม่ต้องสงสัยในการจัดการแบบวันต่อวันเมื่อทำงานกับ Apache บางส่วนที่พบบ่อยที่สุดคือ:

ในการหยุดเว็บเซิร์ฟเวอร์ Apache:

sudo systemctl stop apache2

ในการเริ่มเว็บเซิร์ฟเวอร์ Apache:

sudo systemctl start apache2

ในการรีสตาร์ทเว็บเซิร์ฟเวอร์ Apache:

sudo systemctl restart apache2

ในการรีโหลดเว็บเซิร์ฟเวอร์ Apache (สำหรับการเปลี่ยนแปลงเล็กน้อยที่ไม่ต้องรีสตาร์ท):

sudo systemctl reload apache2

ในการปิดใช้งาน Apache เมื่อบูตเซิร์ฟเวอร์:

sudo systemctl disable apache2

วิธีเริ่ม Apache บนเซิร์ฟเวอร์ boot (เปิดใช้งานโดยอัตโนมัติในการติดตั้ง):

sudo systemctl enable apache2

วิธีอัปเดต Apache

หากต้องการอัปเดต Apache ในอนาคต ให้ดำเนินการโดยใช้คำสั่งที่คุณใช้ตรวจสอบว่าระบบของคุณเป็นเวอร์ชันล่าสุดหรือไม่ หมายเหตุ ให้สร้างข้อมูลสำรองหรือรูปภาพเสมอ หากคุณมีบริการ Apache ที่ใช้บริการที่สำคัญ โดยปกติ การอัปเกรดนั้นค่อนข้างปลอดภัย แต่บางครั้งจุดบกพร่องอาจเกิดขึ้นได้เช่นเดียวกับการอัปเกรดซอฟต์แวร์ใดๆ

ในการอัพเดต Apache ให้ใช้คำสั่งต่อไปนี้:

sudo apt update

หากมีการอัปเกรด Apache ให้ใช้คำสั่ง:

sudo apt upgrade

วิธีลบ (ถอนการติดตั้ง) Apache

หากต้องการลบ Apache หากคุณไม่ได้ใช้อีกต่อไป สามารถทำได้โดยใช้คำสั่งต่อไปนี้:

sudo apt autoremove apache2 --purge

คำสั่งนี้จะลบการขึ้นต่อกันที่ไม่ได้ใช้งานที่มาพร้อมกับการติดตั้ง

ความคิดเห็นและข้อสรุป

ในบทช่วยสอน คุณได้เรียนรู้วิธีติดตั้ง Apache 2 โดยใช้ที่เก็บเริ่มต้นของ Ubuntu หรือ Apache 2 ที่อัปเดตที่แนะนำโดยใช้ PPA โดย Ondřej Surý โดยรวมแล้ว Apache เป็นเว็บแอปพลิเคชันเซิร์ฟเวอร์ที่ใช้มากที่สุดในโลกมานานหลายทศวรรษ อย่างไรก็ตาม ในที่สุด Nginx ก็แซงขึ้นนำได้เพียงเล็กน้อย Apache ยังคงเป็นหนึ่งในเว็บแอปพลิเคชันที่ได้รับการปรับใช้และเป็นที่รู้จักมากที่สุด โดยเฉพาะอย่างยิ่งกับการรวม LAMP stack ซึ่งมักใช้สำหรับเว็บเซิร์ฟเวอร์ส่วนหลัง คุณจะพบตัวเลือกที่เป็นมิตรต่อ Apache มากกว่า Nginx ซึ่งทำให้ผู้ใช้รายใหม่เข้าสู่การโฮสต์เว็บเซิร์ฟเวอร์ของตน อาจลองใช้ Apache แทน Nginx เป็นขั้นตอนแรก



ไม่ใช่สิ่งที่คุณกำลังมองหา? ลองค้นหาบทช่วยสอนเพิ่มเติม

แสดงความคิดเห็น