2011-08-12 15 views
13

का उपयोग करते हुए एक योनि सैंडबॉक्स पर अपाचे तक पहुंचने के लिए मैंने एक वोनर/वर्चुअलबॉक्स वेब सर्वर को विकास सैंडबॉक्स के रूप में बनाया है, और एसएसएल के लिए वीएम में कॉन्फ़िगर किया गया अपाचे (डिफ़ॉल्ट पोर्ट 443 पर, स्वयं हस्ताक्षरित के साथ प्रमाण पत्र)। मैं वी एम पर ही पृष्ठों परीक्षण किया है कर्लएसएसएल (पोर्ट अग्रेषण)

curl -v -k https://mysite.mydomain.com/testSearch/results?postcode=WN8+0BA 

का उपयोग कर और यह काफी खुशी से काम करने लगता है, तो मैं संतुष्ट हूँ कि अपाचे सही ढंग से कॉन्फ़िगर और वी एम में काम कर रहा है।

हालांकि, जब मैं अपने होस्ट के ब्राउज़र से https पर VM तक पहुंचने का प्रयास करता हूं, तो मैं ऐसा करने में असमर्थ हूं।

मैं अपने vagrantfile को

config.vm.forward_port "https", 443, 8443 

चुके हैं, लेकिन यूआरएल

https://mysite.mydomain.com:8443/testSearch/results?postcode=WN8+0BA 
बस

पेज मैं कई अलग अलग ब्राउज़रों के साथ की कोशिश की है प्रदर्शित नहीं कर सकता का उपयोग करने की कोशिश कर रहा है: आईई देता है एक अर्थहीन "इंटरनेट एक्सप्लोरर वेबपृष्ठ प्रदर्शित नहीं कर सकता"; क्रोम

SSL connection error 
Unable to make a secure connection to the server. This may be a problem with the server or it may be requiring a client authentication certificate that you don't have. 
Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error. 

देता है फ़ायरफ़ॉक्स मुझे

An error occurred during a connection to mysite.mydomain.com:8443. 
SSL received a record that exceeded the maximum permissible length. 
(Error code: ssl_error_rx_record_too_long) 

देता है, लेकिन यहां तक ​​कि Firebug नेट टैब मुझे उस से ज्यादा कुछ भी नहीं बताता है।

मुझे वीएम अपाचे पर पहुंच या त्रुटि लॉग में कुछ भी नहीं मिल रहा है, इसलिए मुझे संदेह है कि योनि एसएसएल को अग्रेषित नहीं कर रहा है।

  • वीएम अतिथि ओएस: centos56x64
  • मेजबान: विंडोज 7 64-बिट
  • JRuby: 1.6.3 (माणिक 1.8.7-p330) (2011-07-07 965162f) (जावा हॉटस्पॉट (टीएम) 64-बिट सर्वर वीएम 1.6.0_24) [विंडोज 7-amd64-जावा]
  • Vagrant: 0.7.8
  • VirtualBox: 4.0.12

किसी भी सहायता कृतज्ञता स्वीकार कर लिया जाएगा।

उत्तर

24

1) फ़ाइल Vagrantfile

Vagrant::Config.run do |config| 
    config.vm.box = "lucid32" 
    config.vm.network "33.33.33.10" 
    config.vm.forward_port "http", 80, 8080 
end 

2 कॉन्फ़िगर) अपने वी एम के अंदर अपने वी एम "lucid32"

vagrant ssh 

3) को एक्सेस करें, अपाचे "वर्चुअल होस्ट" कॉन्फ़िगर :

<VirtualHost 33.33.33.10:80> 
    ServerName  your-domain.dev 
    DocumentRoot /vagrant 
    DirectoryIndex index.php index.html index.htm 

    <Directory /vagrant> 
     AllowOverride All 
     Allow from All 
    </Directory> 
</VirtualHost> 

<VirtualHost 33.33.33.10:443> 
    ServerName  your-domain.dev 
    DocumentRoot /vagrant 
    DirectoryIndex index.php index.html index.htm 

    <Directory /vagrant> 
     AllowOverride All 
     Allow from All 
    </Directory> 

    SSLEngine on 
    SSLCertificateFile /path/to/certicate/apache.pem 
</VirtualHost> 

4) से बाहर निकलें वीएम और कॉन्फ़िगर फ़ाइल "मेजबान" अपने मेजबान मशीन में:

33.33.33.10 your-domain.dev 
+6

फिर जब आप Vagrant बॉक्स को नष्ट कर। एक प्रावधान (बैश) स्क्रिप्ट का उपयोग करके, शेफ या कठपुतली इस कार्य को बहुत कम दोहराएगी। –

+1

googlers के लिए, मुझे '.crt' फ़ाइल में 'SSLCertificateFile' और' .key' फ़ाइल में' SSLCertificateKeyFile 'दोनों निर्दिष्ट करना था। –

0

जवाब ऊपर चरण 2 और 3 हर बार जब आप बॉक्स को नष्ट दोहरा रखने के लिए की आवश्यकता होगी। मेरा सुझाव है कि आप अपने लक्ष्य को प्राप्त करने के लिए शेफ का उपयोग करें।नीचे दिए गए उदाहरण देखें: इस समाधान तुम पर चरण 2 और 3 क्या करना है और उपयोग करते समय

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant.configure(2) do |config| 

    config.vm.box  = "precise64" 
    config.vm.box_url = "http://files.vagrantup.com/precise64.box" 

    config.vm.network :forwarded_port, guest: 80, host: 8080 
    config.vm.network :forwarded_port, guest: 443, host: 443 

    config.vm.network "private_network", ip: "192.168.33.10" 

    config.vm.provision :chef_solo do |chef| 

     chef.cookbooks_path = "/path/to/your/cookbooks" 

     # Install PHP 
     chef.add_recipe "php" 
     chef.add_recipe "php::module_mysql" 

     # Setup Apache 
     chef.add_recipe "apache2" 
     chef.add_recipe "apache2::mod_php5" 

     chef.json = { :apache => { :default_site_enabled => true } } 

    end 

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