การกำหนดค่า SSL กับ Apache ภายใต้ Lion


6

ติดตามจากคำถามก่อนหน้าของฉัน (ซึ่งฉันตอบเอง)

การกำหนดค่า OS X 10.7 Lion Server เพื่อให้บริการแอพ Rails ผ่าน Apache

... ตอนนี้ฉันต้องการตั้งค่า SSL

อีกครั้งฉันมีการปรับแต่งใช้งานได้ดีภายใต้ Snow Leopard แต่ฉันต้องการตั้งค่านี้บน i7 Mac Mini ใหม่ดังนั้นการเรียกใช้ Snow Leopard ไม่ใช่ตัวเลือก

ฉันใช้ kludge โฮสต์เสมือนที่มีชื่อซึ่งอธิบายไว้ในคำตอบลิงก์ด้านบน แต่ฉันไม่สามารถทำงาน SSL ได้

Snow Leopard config ฉันจะอ้างอิง Lion config ของฉันอยู่ด้านล่าง

เคล็ดลับในการกำหนดค่าที่เทียบเท่าภายใต้ Lion จะได้รับการชื่นชมอย่างมาก ขอบคุณ

<VirtualHost 10.0.1.1:80>
  ServerName bonk.example.com

  Redirect / https://bonk.example.com/

</VirtualHost>

<VirtualHost 10.0.1.1:443>
    ServerName bonk.example.com
    DocumentRoot "/Rails/deployed/bonk/current/public"
    RackEnv example_production
    RailsEnv example_production
    <Directory "/Rails/deployed/bonk/current/public">
      Order allow,deny
      Allow from all
      Options FollowSymLinks
    </Directory>

  SSLEngine on
  SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
  SSLOptions +FakeBasicAuth +ExportCertData +StdEnvVars +StrictRequire
  SSLCertificateFile /private/etc/apache2/server.crt
  SSLCertificateKeyFile /private/etc/apache2/server.key
  SSLCertificateChainFile /private/etc/apache2/ca.crt
  SetEnvIf User-Agent &quot;.*MSIE.*&quot; nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0

  RequestHeader set X-Forwarded-Proto "https"

</VirtualHost>

คุณลองใช้คู่มือนี้จาก Apple หรือไม่ developer.apple.com/internet/serverside/modssl.html

ขอบคุณ แต่คู่มือนั้นค่อนข้างเก่า ฉันใช้ SSL ทำงานภายใต้ Snow Leopard แต่ Lion เปลี่ยนสิ่งต่าง ๆ ได้เล็กน้อย มีวิธีแก้ไขปัญหาสำหรับโฮสต์เสมือนที่ตั้งชื่อไว้ แต่ฉันไม่ได้ทำงาน SSL ภายใต้ Lion กับการตั้งค่านั้น
Snips

คุณจะทำสิ่งนี้ในฐานะ CA ของคุณเอง (ผู้ออกใบรับรอง) ได้อย่างไร
Chase Holden

กระบวนการนี้เหมือนกันทุกประการ (เมื่อคุณสร้างใบรับรองของคุณเอง)
Snips

เห็นได้ชัดว่ามันไม่เหมือนกัน ฉันสร้าง CA ของตัวเองโดยใช้แอป Keychain Keychain แต่นั่นไม่ได้หมายความว่าฉันสามารถใช้กับรหัสด้านบนได้ กรุณาโพสต์ไวยากรณ์ที่เหมาะสมถ้าคุณรู้วิธี
Chase Holden

คำตอบ:


7

สร้างคีย์โฮสต์

ก่อนอื่นสร้างบ้านให้กับไฟล์ SSL ใหม่ ฉันใช้ / etc / apache2 / ssl เปิดหน้าต่างเทอร์มินัลซีดีไปยังไดเร็กทอรีใหม่และออกคำสั่งต่อไปนี้เพื่อสร้างไฟล์โฮสต์คีย์

sudo ssh-keygen -f host.key

สร้างไฟล์คำขอใบรับรอง

คำสั่งนี้สร้างไฟล์คำขอใบรับรอง ไฟล์คำขอใบรับรองประกอบด้วยข้อมูลเกี่ยวกับองค์กรของคุณที่จะใช้ในใบรับรอง SSL

sudo openssl req -new -key host.key -out request.csr

สร้างใบรับรอง SSL

สร้างใบรับรอง SSL ที่ลงชื่อด้วยตนเองโดยใช้ไฟล์คำขอ

sudo openssl x509 -req -days 365 -in request.csr -signkey host.key -out server.crt

กำหนดค่า Apache

สร้างสำเนาสำรองของ /etc/apache2/httpd.conf

ผนวกเนื้อหาของ /etc/apache2/extra/httpd-ssl.conf ไปที่ /etc/apache2/httpd.conf

ใน /etc/apache2/httpd.conf ตรวจสอบให้แน่ใจว่าเปิดใช้งานการโหลด SSL (ลบ #)

LoadModule ssl_module libexec/apache2/mod_ssl.so

นอกจากนี้ให้แก้ไขส่วน SSL เพื่อใช้ใบรับรองใหม่

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/host.key

ตรวจสอบการกำหนดค่าและรีสตาร์ท Apache เพื่อลองใช้ใบรับรองใหม่

sudo apachectl configtest
sudo apachectl restart

ขอขอบคุณHouse of DingและMatt Langtree ที่ให้บริการโซลูชั่นนี้มากมาย


ขอบคุณสำหรับคำตอบของคุณ แต่ดูเหมือนว่าคำแนะนำมาตรฐานสำหรับ Snow Leopard (และก่อนหน้า) คุณได้ลองสิ่งนี้กับ Lion แล้วหรือยัง? เพราะฉันไม่คิดว่ามันจะใช้ได้ผล: - /
Snips

ได้. วิ่งบนสิงโตแล้วก็ใช้งานได้ การตั้งค่าการแชร์ไม่แสดงว่าเซิร์ฟเวอร์เปิดอยู่ แต่เป็น
yanokwa

1

ปัญหาข้างต้นคือต้องใช้รหัสผ่านหรือวลีรหัสผ่านจาก apache ซึ่งไม่สามารถรับได้ ดังนั้น Apache จะไม่ทำงานหรือเริ่มต้น!

สิ่งที่จำเป็นคือการสร้างคีย์โฮสต์"ไม่มีรหัสผ่าน"ด้วยคำสั่งนี้:

openssl rsa -in host.key -out host.nopass.key

... และคีย์ ssl ของ apache โดยตรงไปยังhost.nopass.keyที่สร้างขึ้น

เมื่อฉันทำสิ่งนี้ Lion Apache ของฉันทำงานได้สำเร็จ


การแก้ไขของ Chase ทำงานสำหรับฉัน! มีการ "sudo": sudo openssl rsa -in host.key -out host.nopass.key
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.