httpsでsinatraアプリを動かす

sudo a2enmod ssl


オレオレ証明書を作る
適当に質問に答える

openssl req -new -nodes -keyout server.key -out server.csr
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
sudo cp server.* /etc/apache2/

/etc/apache2/sites-available/default を編集

<VirtualHost *:80>
     ServerName testapp.example.com
     DocumentRoot /path/to/sinatra-app/public
</VirtualHost>


<VirtualHost *:443>
     ServerName testapp.example.com
     DocumentRoot /path/to/sinatra-app/public
     SSLEngine on
     SSLCertificateFile /etc/apache2/server.crt
     SSLCertificateKeyFile /etc/apache2/server.key
</VirtualHost>

port80と同じアプリをport443でも動かす

もしdefaultじゃなく新しく設定ファイルを増やしたら、a2ensiteを忘れないように

sinatraからはenv['rack.url_scheme']でhttpかhttpsかが判別できる
アプリ側で、ログイン用のURLにhttpで来たらhttpsにredirectするとか、適当にすればいいと思う