2010-01-22 26 views
12

Tôi có một ứng dụng sử dụng HTTPS cho một số tuyến đường của nó cùng với plugin ssl_requirement. Nó được triển khai và hoạt động tốt trong sản xuất.Làm thế nào để bạn xử lý SSL trong quá trình phát triển?

Câu hỏi đặt ra là cách tốt nhất để xử lý này trong việc phát triển, bởi vì tại thời điểm này tôi chỉ đơn giản là hack routes.rb tôi để loại bỏ phím :requirements và rõ ràng đó không phải là rất thuận tiện hoặc thanh lịch:

map.resource :session, :controller => 'session', 
         :only => [:new, :create, :destroy], 
         :requirements => { :protocol => 'https' } 

Lý tưởng tôi' d muốn có thể chạy các phần bảo mật của ứng dụng trong quá trình phát triển trên Mongrel mà không có bất kỳ thay đổi nào. Làm thế nào tôi có thể đạt được điều này? Tôi đang sử dụng Mac OS X.

+0

Môi trường phát triển của bạn như thế nào? – jonnii

+0

Tôi hỏi điều này, bởi vì đối với các ứng dụng phức tạp hơn (ví dụ những ứng dụng sử dụng SSL), bạn cần phải bắt đầu suy nghĩ về việc có một môi trường sản xuất giống như trên máy của bạn ... apache/passenger etc ... – jonnii

+0

Hiện tại tôi chạy Mongrel thông qua 'script/server', nhưng tôi không đảo ngược việc chuyển sang Hành khách. Tôi chạy Apache/Passenger trong sản xuất. –

Trả lời

7

Đừng lo lắng về SSL trong phát triển

Đối với một môi trường phát triển, IMO, bạn không cần phải chạy SSL. Nó không có giá trị thời gian hay rắc rối, đặc biệt là khi có nhiều người tham gia vào nhóm. Liên quan đến tuyến đường của bạn, tôi sẽ chỉ đơn giản là giữ cho giao thức như http trong môi trường phát triển:

protocol = Rails.env.development? ? "http" : "https" 

map.resource :session, :controller => 'session', 
         :only => [:new, :create, :destroy], 
         :requirements => { :protocol => protocol } 

Bây giờ, nơi bạn làm cần phải kiểm tra tích hợp SSL của bạn nằm trên dàn dựng môi trường của bạn - nơi nơi bạn triển khai ngay trước khi triển khai sang sản xuất. Đây là nơi bạn muốn tái tạo chính xác môi trường sản xuất của mình. Môi trường phát triển của bạn không cần phải phù hợp với môi trường sản xuất của bạn theo cách tương tự.

+1

Cảm ơn, tôi không biết tại sao tôi không nghĩ đến việc sử dụng đoạn mã đó! –

7

Khi ứng dụng đường ray trở nên phức tạp hơn và bạn muốn sử dụng các tính năng nâng cao như SSL, cách tốt nhất là chuyển sang môi trường phát triển phù hợp hơn với môi trường sản xuất của bạn. Điều này sẽ cho phép bạn tạo các chứng chỉ SSL của riêng bạn và thử nghiệm theo cách sẽ phản ánh cách người dùng của bạn sẽ sử dụng ứng dụng của bạn.

Tôi đề xuất chuyển sang cùng một máy chủ web như bạn sử dụng trong sản xuất, mà bạn đã đề cập là apache/hành khách.

Trong câu hỏi có liên quan ... bạn quản lý môi trường thử nghiệm của mình bằng ssl như thế nào? Đối với điều này tôi hiện đang hack lên các tuyến đường của tôi như bạn đang làm. Có cách nào tốt hơn?

+0

Tôi thực sự cần kiểm tra chính tả của mình trước khi đăng bài! – jonnii

Các vấn đề liên quan