กำหนดค่า Apache ด้วยใบรับรอง TLS / SSL ที่ลงชื่อด้วยตนเองบน Ubuntu 16.04

SSL และผู้สืบทอด TLS (Secure Sockets Layer / Transport Layer Security) เพิ่มชั้นของการเข้ารหัสระหว่างไคลเอนต์และเซิร์ฟเวอร์ หากไม่มีเทคโนโลยีนี้ข้อมูลจะถูกส่งไปยังเซิร์ฟเวอร์เป็นข้อความธรรมดาทำให้บุคคลที่สามสามารถอ่านข้อมูลทั้งหมดที่เซิร์ฟเวอร์ของคุณส่งและรับ

บทช่วยสอนนี้จะสอนวิธีสร้างใบรับรอง SSL / TLS และเปิดใช้งานบน Apache 2.4 บน Ubuntu 16.04 ฉันถือว่า Apache ติดตั้งและใช้งานแล้ว หากคุณต้องการเรียนรู้วิธีการติดตั้งสแต็ค LAMP ดูเอกสาร Vultrนี้

ความสนใจ

ปกติแล้วใบรับรอง SSL / TLS จะถูกสร้างขึ้นโดย CA ที่เชื่อถือได้ (หน่วยงานออกใบรับรอง) เมื่อสร้างด้วยตัวคุณเองคุณจะเป็นผู้ลงนามหมายความว่าเบราว์เซอร์จะไม่สามารถตรวจสอบว่าตัวตนของใบรับรองควรเชื่อถือได้หรือไม่และจะเตือนผู้ใช้ แม้ว่าจะเป็นไปได้ที่จะข้ามการแจ้งเตือนนี้ไซต์สาธารณะควรใช้ใบรับรองที่ลงนามโดย CA ที่เชื่อถือได้ Let's เข้ารหัสเป็น CA ที่ให้บริการใบรับรองฟรี คุณสามารถเรียนรู้วิธีการติดตั้งใบรับรองของพวกเขาใน Apache และ Ubuntu 16.04 ที่นี่

สำหรับแอปพลิเคชันภายในการใช้ใบรับรองที่ลงชื่อด้วยตนเองอาจใช้ได้โดยเฉพาะถ้าคุณไม่มีชื่อโดเมน


ขั้นตอนที่ 1: การสร้างใบรับรอง

  1. อันดับแรกให้สร้างสถานที่จัดเก็บไฟล์

    mkdir ~/certificates
    cd ~/certificates
    
  2. สร้าง CSR และรหัสส่วนตัว

    openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
    

    มันจะขอข้อมูลสำหรับการร้องขอใบรับรอง สมบูรณ์ด้วยข้อมูลที่เหมาะสม

    Country Name (2 letter code) [AU]: US
    State or Province Name (full name) [Some-State]: FL
    Locality Name (eg, city) []: Miami
    Organization Name (eg, company) [My Company]: My Company
    Organizational Unit Name (eg, section) []:
    

    ชื่อสามัญควรเป็นชื่อโดเมนของคุณหรือที่อยู่ IP ของเซิร์ฟเวอร์ นอกจากนี้กรอกอีเมลของคุณ

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:[email protected]
    
  3. ตอนนี้ย้ายใบรับรองไปยังโฟลเดอร์การกำหนดค่า Apache

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. ใบรับรองพร้อมแล้ว! ต่อไปเราจะเตรียม Apache ให้ทำงานกับใบรับรอง

ขั้นตอนที่ 2: การกำหนดค่าไฟร์วอลล์

  1. เราต้องแน่ใจว่าพอร์ต TCP 443 เปิดอยู่ พอร์ตนี้ใช้ในการเชื่อมต่อ SSL แทนพอร์ต 80 ในบทช่วยสอนนี้เราจะใช้ UFW

  2. ตรวจสอบให้แน่ใจว่าเปิดใช้งาน UFW แล้ว

    sudo ufw enable
    
  3. ตอนนี้อนุญาตการตั้งค่า Apache ที่กำหนดไว้ล่วงหน้าสำหรับไฟร์วอลล์

    sudo ufw allow 'Apache Full'
    
  4. โดยการพิมพ์ " sudo ufw status" คุณจะเห็นรายการกฎปัจจุบัน การกำหนดค่าของคุณควรมีลักษณะเช่นนี้:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. คุณควรอนุญาตให้ OpenSSH ที่นี่สำหรับการเชื่อมต่อในอนาคต

    sudo ufw allow 'OpenSSH'
    

ขั้นตอนที่ 3: การกำหนดค่าโฮสต์เสมือน Apache

  1. นำทางไปยังไดเรกทอรีกำหนดค่าเริ่มต้นของไซต์ Apache

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. ไฟล์นี้บอกเซิร์ฟเวอร์ว่าจะค้นหาใบรับรอง SSL จากที่ใด เมื่อลบความคิดเห็นแล้วควรมีลักษณะเหมือนการกำหนดค่าต่อไปนี้

    <IfModule mod_ssl.c>
      <VirtualHost _default_:443>
       ServerAdmin webmaster@localhost
    
       DocumentRoot /var/www/html
    
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
    
       SSLEngine on
    
       SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
       SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
       </FilesMatch>
       <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
       </Directory>
    
     </VirtualHost>
    </IfModule>
    
  3. แก้ไขบรรทัดนี้:

    ServerAdmin [email protected]
    
  4. เพิ่มทางด้านขวาใต้ServerAdminบรรทัด:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. ตอนนี้แก้ไขบรรทัดเหล่านี้ด้วยที่ตั้งใบรับรองของเรา:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. ไฟล์สุดท้ายของเราควรมีลักษณะเช่นนี้:

    <IfModule mod_ssl.c>
     <VirtualHost _default_:443>
      ServerAdmin [email protected]
      ServerName 203.0.113.122
    
      DocumentRoot /var/www/html
    
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    
      SSLEngine on
    
      SSLCertificateFile    /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
      <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
      </FilesMatch>
      <Directory /usr/lib/cgi-bin>
       SSLOptions +StdEnvVars
      </Directory>
    
     </VirtualHost>
    </IfModule>
    
  7. บันทึกและปิดไฟล์

ขั้นตอนที่ 4: การเปิดใช้งานโมดูล Apache SSL

  1. เปิดใช้งานโมดูล SSL โดยพิมพ์:

    sudo a2enmod ssl
    
  2. ตอนนี้เปิดใช้งานไซต์ที่เราเพิ่งแก้ไข:

    sudo a2ensite default-ssl.conf
    
  3. รีสตาร์ท Apache:

    sudo service apache2 restart
    
  4. ไปที่เว็บไซต์ความปลอดภัยใหม่! เปิดในเบราว์เซอร์ของคุณ (ให้แน่ใจว่าคุณพิมพ์https: // )

    https://YOUR_SERVER_IP
    

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

ขั้นตอนที่ 5: เปลี่ยนเส้นทางการรับส่งข้อมูล HTTP ทั้งหมดไปยัง HTTPS (ไม่บังคับ)

  1. เปิดไฟล์โฮสต์เสมือน Apache ที่เป็นค่าเริ่มต้น:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. เพิ่มบรรทัดนี้ภายใน<VirtualHost *:80>แท็ก:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. โหลดการกำหนดค่า Apache อีกครั้ง:

    sudo service apache2 reload
    

อัตราการเข้าชมเว็บไซต์ทั้งหมดจะเปลี่ยนเส้นทางไปยัง HTTPS โดยอัตโนมัติ



Leave a Comment

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน