2012-01-11 10 views
10

मैं वर्तमान में मेरे रेल अनुप्रयोग में निम्नलिखित विकल्पों का उपयोग कर रहा WEBrick साथ HTTPS सक्षम करने के लिए:मैं एचटीटीपीएस के साथ मध्यवर्ती प्रमाणपत्र का उपयोग करने के लिए वेबब्रिक को कैसे कॉन्फ़िगर कर सकता हूं?

{ 
    :Port => 3000, 
    :environment => (ENV['RAILS_ENV'] || "development").dup, 
    :daemonize => false, 
    :debugger => false, 
    :pid => File.expand_path("tmp/pids/server.pid"), 
    :config => File.expand_path("config.ru"), 
    :SSLEnable => true, 
    :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE, 
    :SSLPrivateKey => OpenSSL::PKey::RSA.new(
     File.open("certificates/https/key.pem").read), 
    :SSLCertificate => OpenSSL::X509::Certificate.new(
     File.open("certificates/https/cert.pem").read), 
    :SSLCertName => [["CN", WEBrick::Utils::getservername]] 
} 

मैं मध्यवर्ती प्रमाणपत्र निर्दिष्ट करने के बारे कैसे जाना होगा?

+0

आपको प्रश्न पर अपने प्रश्न का उत्तर नहीं देना चाहिए। आपको जवाब के साथ अपने प्रश्न का उत्तर देना चाहिए। –

+0

ऐसा प्रतीत होता है कि उपरोक्त कोड [इस ब्लॉग पोस्ट] से आता है (https://www.altamiracorp.com/blog/employee-posts/configuring-webrick-to-use-ssl), सही? –

+0

मुझे लगता है कि मैंने इसे वेबब्रिक दस्तावेज़ से खींच लिया, जो कि खुद में एक चुनौती थी। यह सुंदर बॉयलर प्लेट है। हालांकि मैं @priteshj के लिए टिप्पणी नहीं कर सकता। –

उत्तर

12

कीवर्ड के लिए googling के अतिरिक्त घंटे के बाद मुझे एक जवाब मिल गया।

:SSLExtraChainCert => [ 
    OpenSSL::X509::Certificate.new(
     File.open("certificates/intermediate.crt").read)] 

ध्यान दें कि विकल्प एक Array वस्तु की आवश्यकता है, की अनुमति देता है अगर जरूरत करने के लिए आप एकाधिक प्रमाणपत्र में शामिल हैं: यहाँ मध्यवर्ती प्रमाणपत्र निर्धारित करने का विकल्प है।

-1

आप रेल 3 का उपयोग कर रहे हैं, तो स्क्रिप्ट को संशोधित/रेल फाइल के रूप में

#!/usr/bin/env ruby 
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. 
require 'rubygems' # if ruby 1.8.7 
require 'rails/commands/server' 
require 'rack' 
require 'webrick' 
require 'webrick/https' 

module Rails 
    class Server < ::Rack::Server 
     def default_options 
      super.merge({ 
       :Port => 3000, 
       :environment => (ENV['RAILS_ENV'] || "development").dup, 
       :daemonize => false, 
       :debugger => false, 
       :pid => File.expand_path("tmp/pids/server.pid"), 
       :config => File.expand_path("config.ru"), 
       :SSLEnable => true, 
       :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE, 
       :SSLPrivateKey => OpenSSL::PKey::RSA.new(
         File.open("/key/vhost1.key").read), 
       :SSLCertificate => OpenSSL::X509::Certificate.new(
         File.open("/crt/vhost1.crt").read), 
       :SSLCertName => [["CN", WEBrick::Utils::getservername]], 
      }) 
     end 
    end 
end 

APP_PATH = File.expand_path('../../config/application', __FILE__) 
require File.expand_path('../../config/boot', __FILE__) 
require 'rails/commands' 

ऊपर कोड Configuring WEBrick to use SSL in Rails 3 में उदाहरण से संशोधित किया गया था। यह मेरे लिए काम किया।

+0

.pem से .crt प्रारूप में बदलना फ़ाइल में मौजूद वास्तविक प्रमाणपत्र जानकारी को नहीं बदलेगा। मुझे WEBrick को जानकारी के तीसरे टुकड़े, मध्यवर्ती प्रमाण पत्र के बारे में जागरूक करने की आवश्यकता है। –

+0

क्या आप स्क्रिप्ट/रेल फाइल को संपादित कर सकते हैं जिसे आप संपादित कर रहे हैं? रूबी और रेलों का संस्करण भी है – PriteshJ

+0

मेरा प्रश्न यह पूछ रहा है कि एक इंटरमीडिएट सर्टिफिकेट को कैसे परिभाषित किया जाए, बिना किसी कामकाजी कॉन्फ़िगरेशन के लिए पूछें। –

संबंधित मुद्दे

 संबंधित मुद्दे