I have an application i'm installing on my application server. I've
been
using WEBrick and for now i'd like to just keep using it working in
prototype development mode. This works fine on my development machine
using both http and https, where the host is 'localhost' (ports
3000,3001). It also works fine on the application server http port
3000.
The public/index.html also comes up fine using ssl (port 3001), but
access
to pages that call a controller fail with following message:

x.x.66.67 - - [04/Mar/2010:17:28:43 MST] "GET /tags HTTP/1.1" 500 948
https://x.x.x.x:3001/ -> /tags

'tags' is the name of my model, the request for this error is
        https://x.x.x.x:3001/tags

See below for the full startup of WEBrick, initial index page
retrieval,
and then the request for the tags info. Also below is the script i'm
using
to start WEBrick. That's copied from various examples in various
blogs. It
seems popular.

I am NOT running two WEBrick's, just want to run the one copy, all
ssl, on
port 3001, or whatever. I do have tomcat running and serving on 443,
and
also an instance of apache. I can't see why they'd be involved though.

Using self generated cert.

I've been looking at asset_host setting, and anything else i can
google,
but i can not find anything that tells me what the problem is. I
suspect
it must have something to do with redirection and dropping the
protocol,
or rather using http rather than https, or maybe it's dropping the
port.

Thanks for any clues, signed, confused (Bob).


##############################################################
r...@sevenof9:~/kbrr$ ./script/server_ssl -e production
=> Booting WEBrick...
=> Rails application started on https://x.x.x.x:3001
=> Ctrl-C to shutdown
[2010-03-04 17:27:22] INFO  WEBrick 1.3.1
[2010-03-04 17:27:22] INFO  ruby 1.8.6 (2007-09-24) [i486-linux]
[2010-03-04 17:27:22] INFO
Certificate:
     Data:
         Version: 1 (0x0)
         Serial Number:
             80:f2:ab:75:5a:02:94:d7
         Signature Algorithm: sha1WithRSAEncryption
         Issuer: C=US,.... stuff
         Validity
             Not Before: Mar  3 18:28:16 2010 GMT
             Not After : Feb 29 18:28:16 2020 GMT
         Subject: C=US, .......stuff
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
             RSA Public Key: (1024 bit)
                 Modulus (1024 bit):
                     00:ce:61:6d:39:5f:be:ba:86:c8:b1:20:5b:71:b4:
                           etc
                     f7:c5:bb:69:d4:31:01:08:07
                 Exponent: 65537 (0x10001)
     Signature Algorithm: sha1WithRSAEncryption
         aa:f6:e6:71:aa:d6:d1:3e:b7:46:f6:5c:3d:5a:d3:71:a1:c2:
                           etc
         27:61
[2010-03-04 17:27:22] INFO  WEBrick::HTTPServer#start: pid=8455
port=3001
x.x.66.67 - - [04/Mar/2010:17:28:29 MST] "GET / HTTP/1.1" 200 1341
- -> /
x.x.66.67 - - [04/Mar/2010:17:28:29 MST] "GET
/javascripts/prototype.js HTTP/1.1" 200 129738
https://x.x.x.x:3001/ -> /javascripts/prototype.js
x.x.66.67 - - [04/Mar/2010:17:28:30 MST] "GET /javascripts/effects.js
HTTP/1.1" 200 38675
https://x.x.x.x:3001/ -> /javascripts/effects.js
x.x.66.67 - - [04/Mar/2010:17:28:43 MST] "GET /tags HTTP/1.1" 500 948
https://x.x.x.x:3001/ -> /tags
##############################################################

##############################################################
r...@sevenof9:~/kbrr$ cat script/server_ssl
#!/usr/bin/env ruby

require File.dirname(__FILE__) + '/../config/boot'

require 'webrick'
require 'webrick/https'

puts "=> Booting WEBrick..."

OPTIONS = {
   :port         => 3001,
   :ip           => "x.x.x.x",
   :environment  => (ENV['RAILS_ENV'] || "development").dup,
   :server_root  => File.expand_path(RAILS_ROOT + "/public/"),
   :pkey         => OpenSSL::PKey::RSA.new(
                       File.open(RAILS_ROOT +
"/config/certs/server.key").read),
   :cert         => OpenSSL::X509::Certificate.new(
                       File.open(RAILS_ROOT +
"/config/certs/server.crt").read),
   :server_type  => WEBrick::SimpleServer,
   :charset      => "UTF-8",
   :mime_types   => WEBrick::HTTPUtils::DefaultMimeTypes,
   :debugger     => false
}

ENV["RAILS_ENV"] = OPTIONS[:environment]
RAILS_ENV.replace(OPTIONS[:environment]) if defined?(RAILS_ENV)

require RAILS_ROOT + "/config/environment"
require 'webrick_server'
OPTIONS['working_directory'] = File.expand_path(RAILS_ROOT)

class SSLDispatchServlet < DispatchServlet
   def self.dispatch(options)
     Socket.do_not_reverse_lookup = true
     server = WEBrick::HTTPServer.new(
       :Port             => options[:port].to_i,
       :ServerType       => options[:server_type],
       :BindAddress      => options[:ip],
       :SSLEnable        => true,
       :SSLVerifyClient  => OpenSSL::SSL::VERIFY_NONE,
       :SSLCertificate   => options[:cert],
       :SSLPrivateKey    => options[:pkey],
       :SSLCertName      => [ [ "CN",
WEBrick::Utils::getservername ] ]
     )

     server.mount('/', DispatchServlet, options)
     trap("INT") { server.shutdown }

     server.start
   end
end

puts "=> Rails application started on
https://#{OPTIONS[:ip]}:#{OPTIONS[:port]}";
puts "=> Ctrl-C to shutdown"


SSLDispatchServlet.dispatch(OPTIONS)
##############################################################



##############################################################
>From the server, ruby -v and rails -v

ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux]
Rails 2.3.5

r...@sevenof9:~/kbrr$
uname -a Linux sevenof9 2.6.24-26-server #1 SMP Tue Dec 1 19:19:20 UTC
2009 i686 GNU/Linux
##############################################################

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to