2009-01-16 13 views
9

Potrzebuję przetestować połączenia HTTPS z lokalną instancją skryptu/serwera Rails w trakcie rozwoju, który nie jest obsługiwany i nie mogłem przesłać żadnych rozwiązań do Google.Jak testować HTTPS za pomocą skryptu/serwera Rails?

Oto jak to wygląda z punktu widzenia klienta:

 
[email protected] ~/Downloads[master]$ grep tedslaptop /etc/hosts 
127.0.0.1 api.tedslaptop.com 
[email protected] ~/Downloads[master]$ /usr/bin/curl https://api.tedslaptop.com:3000/ 
curl: (35) Unknown SSL protocol error in connection to api.tedslaptop.com:3000 

A oto co widzę na serwerze:

 
$ script/server 
=> Booting Mongrel (use 'script/server webrick' to force WEBrick) 
=> Rails 2.2.2 application starting on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
** Starting Mongrel listening at 0.0.0.0:3000 
** Starting Rails with development environment... 
** Rails loaded. 
** Loading any Rails specific GemPlugins 
** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart). 
** Rails signals registered. HUP => reload (without restart). It might not work well. 
** Mongrel 1.1.5 available at 0.0.0.0:3000 
** Use CTRL-C to stop. 
Fri Jan 16 13:06:50 -0500 2009: HTTP parse error, malformed request (127.0.0.1): # 
Fri Jan 16 13:06:50 -0500 2009: REQUEST DATA: "\200d\001\003\001\000K\000\000\000\020\000\0009\000\0008\000\0005\000\000\026\000\000\023\000\000\n\a\000?\0003\000\0002\000\000/\003\000\200\000\000\005\000\000\004\001\000\200\000\000\025\000\000\022\000\000\t\006\[email protected]\000\000\024\000\000\021\000\000\b\000\000\006\004\000\200\000\000\003\002\000\200xa\377\\?wEM??/\235F\020\232" 
--- 
PARAMS: {} 
--- 
+0

użyj apache i mod_rewrite –

+0

Utwórz samopodpisany certyfikat. http://www.flatmtn.com/article/setting-ssl-certyfikaty-apache – dangerousdave

Odpowiedz

14

HTTPS jest coś, co jest obsługiwany poza ramami szynach. Dlatego nie możesz go przetestować bezpośrednio. Funkcjonalność, którą zapewnia aplikacja Rails, powinna być dokładnie taka sama dla HTTPS, jak w przypadku niezaszyfrowanego protokołu HTTP.

skrypt/serwer używa Mongrela do obsługi twoich żądań. Mongrel nie obsługuje bezpośrednio SSL/HTTPS.

Jeśli naprawdę chcesz, aby przetestować funkcjonalność HTTPS, musisz konfiguracji Apache (lub innego serwera WWW) z obsługą SSL/HTTPS (używając mod_ssl) i skonfigurować go uruchomić aplikację Rails (przy mod_rails lub mod_proxy).

Powiązane problemy