Làm cách nào để dễ dàng tạo chứng chỉ SSL và định cấu hình chứng chỉ trong Apache2 trong Mac OS X?


34

Tôi muốn sử dụng Mac OS X của mình với https để kiểm tra phát triển cục bộ. Làm cách nào tôi có thể dễ dàng khiến Apache2 phản hồi với ssl, chỉ để đề xuất thử nghiệm - Tôi không muốn có chứng chỉ thật, chỉ là giả để làm cho https cục bộ hoạt động

Câu trả lời:


58

Đối với thử nghiệm phát triển địa phương, một chứng chỉ tự ký là đủ. Bạn có thể tạo một cái với bộ OpenSSL như vậy:

Tạo khóa riêng:

openssl genrsa -des3 -out server.key 1024

đầu ra:

Tạo khóa riêng RSA, mô đun dài 1024 bit
.................................................. ....... ++++++
........ ++++++
e là 65537 (0x10001)
Nhập cụm từ PEM:
Xác minh mật khẩu - Nhập cụm từ PEM:

nhập cụm mật khẩu cho khóa riêng của bạn.

Tạo CSR (yêu cầu ký chứng chỉ):

openssl req -new -key server.key -out server.csr

nó sẽ yêu cầu chi tiết như thế này:

Tên quốc gia (mã 2 chữ cái) [GB]:
Tên tiểu bang hoặc tỉnh (tên đầy đủ) [Berkshire]:
Tên địa phương (ví dụ: thành phố) [Newbury]:
Tên tổ chức (ví dụ: công ty) [My Company Ltd]:
Tên đơn vị tổ chức (ví dụ: phần) []:
Tên chung (ví dụ: tên của bạn hoặc tên máy chủ của máy chủ của bạn) []:
Địa chỉ email []:
Vui lòng nhập các thuộc tính 'phụ' sau đây
được gửi với yêu cầu chứng chỉ của bạn
Mật khẩu thử thách []:
Tên công ty tùy chọn []:

nó khá đơn giản, tên phổ biến là tên máy chủ của máy chủ của bạn như được nói trong ngoặc.

Tạo chứng chỉ tự ký:

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

Định cấu hình SSL trong httpd.conf cho Apache:

SSLEngine trên
SSLCertertFile /path/to/generated/server.crt
SSLCertertKeyFile /path/to/generated/server.key

(thay thế đường dẫn một cách thích hợp bằng đường dẫn đến chứng chỉ và khóa của bạn)

Khởi động lại Apache :

apachectl restart

Apache sẽ yêu cầu bạn nhập cụm mật khẩu vào khóa của bạn. Nếu bạn nghĩ rằng bạn sẽ tắt máy chủ rất nhiều, bạn có thể muốn xóa cụm mật khẩu khỏi khóa để bạn có thể tránh nhập nó mỗi lần. Nếu không, đừng lo lắng về nó. Nếu vậy, hãy hoàn thành bước này sau bước 2 ( Tạo CSR ):

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key

nó gần như làm tôi buồn Khi tôi cố gắng truy cập một số trang trong Rails, sử dụng http trang đó tồn tại, nhưng khi tôi sử dụng https, nó sẽ trả về trang không tìm thấy. Bạn có biết những gì có thể được?
Daniel Cukier

Bạn đã thay đổi virtualhost của mình để sử dụng https trên cổng 443? Nó sẽ trông như thế này: <Virtualhost 192.168.1.100:443> Bật SSLEngine, v.v .... </ Virtualhost>
John T

Cảm ơn vì điều này, tôi đã nhận được chứng chỉ SSL hoạt động tốt trên Lion với điều này. Chỉ cần nghĩ rằng tôi sẽ thêm một vài điểm mặc dù điều đó sẽ làm cho cuộc sống của bạn dễ dàng hơn. Apache của Apple có một httpd-ssl.conf đã được thiết lập để tìm trong / private / etc / apache2, vì vậy nếu bạn đặt máy chủ của mình. * Các tệp có một tệp ít hơn để chỉnh sửa. Ngoài ra, bạn cần chỉnh sửa httpd.conf vì dòng bao gồm httpd-ssl.conf được nhận xét theo mặc định. Cuối cùng, 365 ngày là một chút ngắn, bạn có thể muốn đặt ngày hết hạn dài hơn hoặc bạn sẽ thực hiện lại vào năm tới (tôi đã sử dụng 3650)
GordonM

Nếu bất cứ ai gặp vấn đề như tôi gặp phải, bạn sẽ rất vui khi tìm thấy liên kết này, điều này giải thích cách thiết lập virtualhost với virtualhostx để hoạt động với ssl yellowrobot.heroku.com/blog/2012/01/22/
Tương đối

Nếu đó là máy dev của bạn, có lẽ bạn muốn có khóa riêng mà không cần mật khẩu: openssl rsa -in server.key -out server.nopass.key
Aldekein
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.