Rails i SLL

hej

mam pytanie,

Piszę 1 app w Rails ale muszę ją mieć na https. Development jest na komputerze na zwłym serwerku. serwer uruchamiam rails s wtedy po wpisaniu http://localhost:3000 mam stronę jak zrobić by strona pokazywała się też po wpisaniu https://localhost/

[quote=piotrstanek]hej

mam pytanie,

Piszę 1 app w Rails ale muszę ją mieć na https. Development jest na komputerze na zwłym serwerku. serwer uruchamiam rails s wtedy po wpisaniu http://localhost:3000 mam stronę jak zrobić by strona pokazywała się też po wpisaniu https://localhost/[/quote]
Musiałbyś skonfigurować lokalnie jakiś serwer, który obsługuje szyfrowanie SSL, czyli najprawdopodobniej apacha albo nginx i wygenerować sobie odpowiednie klucze.

Zasadniczo poszukaj dowolnego tutoriala dotyczącego SSL i apacha lub nginxa, jak to już skonfigurujesz dla zwykłego index.html, to dorzucenie railsów jest tylko formalnością.

Inna sprawa to czy potrzebujesz SSL na localhoście?

piszę app na FB. a tam potrzebny jest SSL więc przydałby się do testowania itp.

Użyj serwera thin - wpisz w Gemfile: gem ‘thin’
Aplikację uruchamiasz: bundle exec thin start --ssl -D

dzięki działa a można zrobić tak by http i https działało odrazu na tym serwerze thin

A w ogóle - też ostatnio pisałem wersję aplikacji na FB (canvas) - i co prawda facebook żądał podania adresu z https, ale równie dobrze można aplikację testować łącząc się normalnie przez http. Także nie jestem taki pewien, czy to jest znowu takie absolutnie konieczne, by stawiać sobie ssl lokalnie.

no też tak myślałem, ale jak podaję url bez https to mam komunikat że musi być https. ale nie ważne już jest ok.

hej,

jeszcze jedno pytanie serwer uruchomiłem tak jak kolega wyżej podpowiada i działa.

bundle exec thin start --ssl -D

Jak go odpalić by działał na https i http…???

Na tym samym porcie, raczej nie da rady. Odpal drugą instancję serwera na innym porcie. Dla thin parametr “-p” lub standardowo “rails s” (inny port też z “-p”).

a da się może jakoś przekierować na https jak ktoś wchodzi z http… czy coś w ten deseń.

Czy uruchomienie aplikacji na dwóch różnych ma sens? czy to normalne?

Pytasz o development (zapytanie bezpośrednio do serwera aplikacji), czy produkcję?

i to i to ?

teraz na Dev odpalam 2 app osobno, każda na innym porcie ale to kłopotliwe. na pro jeszcze nie mam pomysłu.

Na developmencie nie znam innego szybkiego rozwiązania jak 2 sztuki thin na różnych portach. Jak nie chcesz lokalnie stawiać apache/nginx (patrz rozwiązanie @drogusa), to ewentualnie przychodzi mi jeszcze do głowy pow + ssl lub port forwarding.
Na produkcji powinna wystarczyć odpowiednia konfiguracja apache/nginx i vhost/server.

Dla nginx, możesz przekierować http na https np. tak:

[code]server {
listen 443 ssl;
server_name nazwaserwera.com;
(…)
}

server {
listen 80;
server_name nazwaserwera.com;
rewrite ^ https://$server_name$request_uri? permanent;
}[/code]

Trochę odgrzebuję, ale artykuł napotkany na RubyFlow od razu skojarzył mi się z tym tematem.

http://www.railway.at/2013/02/12/using-ssl-in-your-local-rails-environment/

Może się komuś przyda :wink: