วิธีการตั้งค่าโฮสต์ SSL หลายเดียวกับเซิร์ฟเวอร์ Apache

A+ A-

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

นี้ได้รับอนุญาตจากส่วนขยายไปยังโปรโตคอล SSL เรียกชื่อเซิร์ฟเวอร์บ่งชี้ (SNI) เดสก์ท็ส่วนใหญ่ในปัจจุบันและเว็บเบราว์เซอร์มือถือสนับสนุน SNI ประโยชน์หลักของการใช้ SNI คือความสามารถในการรักษาความปลอดภัยหลายเว็บไซต์โดยไม่ต้องซื้อที่อยู่ IP เพิ่มเติม

องค์ประกอบ

ตรวจสอบให้แน่ใจโมดูลรักษาความปลอดภัย mod_ssl มีการติดตั้งและเปิดใช้งานเพื่อให้ Apache เว็บเซิร์ฟเวอร์สามารถใช้ห้องสมุดและ OpenSSL Toolkit:

 # yum ติดตั้ง OpenSSL mod_ssl 

ดำเนินการคำสั่งด้านล่าง

 # mkdir -p / etc / httpd / SSL / 
 # MV /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak 
 # cd / etc / httpd / SSL / 

สร้างการลงนามในใบรับรอง SSL ร้องขอไฟล์สำหรับโดเมนของคุณ

 # OpenSSL genrsa ท์ mydomain1.key 2048 
 # req OpenSSL ใหม่ -key mydomain1.key ท์ mydomain1.csr 
 # OpenSSL genrsa ท์ domain2.key 2048 
 # req OpenSSL ใหม่ -key mydomain2.key ท์ mydomain2.csr
ใส่รายละเอียดดังต่อไปนี้สำหรับใบรับรองของคุณ:
ชื่อประเทศ (2 รหัสตัวอักษร) [AU]: IN
ชื่อรัฐหรือจังหวัด (ชื่อเต็ม) [บางรัฐ]: Telengana
ชื่อถิ่น (เช่นเมือง) []: เดอราบาด
ชื่อองค์กร (เช่น บริษัท ) [Internet Widgits Pty Ltd]: mydomain1.com
ชื่อหน่วยองค์กร (เช่นส่วน) []: mydomain.com
ชื่อสามัญ (เช่น FQDN เซิร์ฟเวอร์หรือชื่อของคุณ) []: mydomain1.com
ที่อยู่อีเมล์ []: [email protected] 

ก็จะแนะนำให้ติดตั้งใบรับรอง SSL ในเชิงพาณิชย์เมื่อเราจะปรับใช้ในระบบการผลิต หรือเราเพียงแค่สร้างใบรับรอง SSL ลงนามด้วยตนเองซึ่งจะใช้เพื่อจุดประสงค์ในการพัฒนาหรือการแสดงละครเว็บไซต์โดยใช้คำสั่งดังต่อไปนี้

 # OpenSSL x509 -req -Days 365 -in mydomain1.csr -signkey mydomain1.key ท์ domain1.crt 
 # OpenSSL x509 -req -Days 365 -in mydomain2.csr -signkey mydomain2.key ท์ mydomain2.crt 

การแก้ไข 'ssl.conf' Apache แฟ้มการกำหนดค่า

 # vi /etc/httpd/conf.d/ssl.conf 
 โมดูล LoadModule ssl_module / mod_ssl.so
ฟัง 443
NameVirtualHost *: 443
     SSLPassPhraseDialog builtin
     SSLSessionCacheTimeout 300
     เริ่มต้น SSLMutex
     SSLRandomSeed แฟ้มเริ่มต้น: / dev / urandom 256
     SSLRandomSeed เชื่อมต่อ builtin
     SSLCry​​ptoDevice builtin
     SSLStrictSNIVHostCheck ปิด
<VirtualHost *: 443>
      DocumentRoot / var / www / html / mydomain1
      ServerName mydomain1.com
      ServerAlias​​ www.mydomain1.com
      SSLEngine บน
      SSLProtocol ทั้งหมด -SSLv2 
      SSLCipherSuite ทั้งหมด:! ADH: ส่งออก: SSLv2: RC4 + อาร์เอส + สูง + กลาง: + ต่ำ
      SSLCertificateFile /etc/httpd/ssl/mydomain1.cr
      SSLCertificateKeyFile /etc/httpd/ssl/mydomain1.key
      บันทึก ErrorLog / ssl_error_log
      บันทึก TransferLog / ssl_access_log
      LogLevel เตือน
      <ไฟล์ ~ "\. (CGI | shtml | PHTML? | PHP3) $">
               SSLOptions + StdEnvVars
      </ ไฟล์>
      SetEnvIf User-Agent ". * MSIE. *" \
      nokeepalive SSL-มลทิน-ปิด \
      ปรับลด-1.0 แรงตอบสนอง-1.0
      บันทึก CustomLog / ssl_request_log \
      "% T% h% {} SSL_PROTOCOL x% {} SSL_CIPHER x \"% r \ "% B" 
</ VirtualHost>
<VirtualHost *: 443>
      DocumentRoot / var / www / html / mydomain2
      ServerName mydomain2.com
      ServerAlias​​ www.mydomain2.com
      SSLEngine บน
      SSLProtocol ทั้งหมด -SSLv2
      SSLCipherSuite ทั้งหมด:! ADH: ส่งออก: SSLv2: RC4 + อาร์เอส + สูง + กลาง: + ต่ำ
      SSLCertificateFile /etc/httpd/ssl/mydomain2.crt
      SSLCertificateKeyFile /etc/httpd/ssl/mydomain2.key
      บันทึก ErrorLog / ssl_error_log
      บันทึก TransferLog / ssl_access_log
      LogLevel เตือน
      <ไฟล์ ~ "\. (CGI | shtml | PHTML? | PHP3) $">
           SSLOptions + StdEnvVars
      </ ไฟล์>
      SetEnvIf User-Agent ". * MSIE. *" \
      nokeepalive SSL-มลทิน-ปิด \
      ปรับลด-1.0 แรงตอบสนอง-1.0
      บันทึก CustomLog / ssl_request_log \
      "% T% h% {} SSL_PROTOCOL x% {} SSL_CIPHER x \"% r \ "% B"
</ VirtualHost> 

เมื่อเรากำลังใช้ใบรับรอง SSL ในเชิงพาณิชย์ก็เป็นไปได้ว่าผู้มีอำนาจลงนามในสัญญาจะรวมถึงใบรับรอง CA ระดับกลาง ในกรณีที่เราจะสร้างใหม่ '/etc/httpd/ssl/ca.crt' ไฟล์และวางเนื้อหาของ CA ระดับกลางลงไปแล้วเราจำเป็นต้องแก้ไข 'ssl.conf' แฟ้มการกำหนดค่าและ uncomment บรรทัดต่อไปนี้ .

 SSLCertificateChainFile /etc/httpd/ssl/ca.crt 

ดังนั้น Apache เว็บเซิร์ฟเวอร์สามารถหาใบรับรอง CA ของคุณ

ทดสอบการตั้งค่า Apache

 # /etc/init.d/httpd configtest
ไวยากรณ์ตกลง 

Re STA RT บริการ Apache เพื่อให้การเปลี่ยนแปลงมีผลบังคับใช้

 # httpd บริการเริ่มต้น 

เปิด https://mydomain1.com และ https://mymydomain2.com ในเว็บเบราเซอร์ที่คุณชื่นชอบและตรวจสอบว่า SSL ใบรับรองมีการติดตั้งอย่างถูกต้อง

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

Ads

หุ้น

เมื่อเร็ว ๆ นี้

ทางเลือกที่ดีที่สุดอูบุนตูที่มองหาถ้าคุณเป็นคนรักของลินุกซ์

ขอเริ่มต้นโดยได้รับคุ้นเคยกับบางสิ่งบางอย่าง; พื้นฐาน แต่บิ...

วิธีการเพิ่มลายเซ็นใน Gmail กล่องขาเข้า - เพิ่มลายเซ็นของ Google ใน Gmail

กล่องขาเข้าโดย Google เป็นหนึ่งในสิ่งที่ดีที่สุดของ Google ...

Weekly Tech News: Nokia, Google และนินเทน

สวัสดีครับทุกคนก็ศุกร์ 3 มีนาคมและเช่นเดียวเสมอเรากลับมาพร้...

โครงการ Pi ราสเบอร์รี่สำหรับมือใหม่ - คุณสามารถทำอะไรกับราสเบอร์รี่ Pi

ราสเบอร์รี่ Pi เป็นชุดของพลังงานต่ำคอมพิวเตอร์บอร์ดเดียวที่...

VPN ที่ดีที่สุดสำหรับ Android 2017 - วิธีการใช้ VPN ใน Android

ไปเป็นวันเมื่อ VPNs เพียงสำหรับเทคโนโลยี savvies และแฮกเกอร...

ความคิดเห็น