lets encryptを使ったhttpsサポートの実現

2016/09/22 5:49 に 森山誠二郎 が投稿   [ 2017/10/30 16:29 に更新しました ]
更新についてのメモ
最初443のポートが使われているとのエラー。
httpdをsystemctl stop httpdしてもダメ。docker stop (gitlab)してもダメ。chef-server-ctl stop だったみたい。
ルータの443に対するポートマッピングをALBサーバのローカルIPに変更する必要があった。

/root/letsencrypt/letsencrypt-autoを使う

1.SSL証明書の入手
 letsencryptをインストールした場所で
./letsencrypt-auto certonly --standalone -d alb.anagix.com
 を実行すれば、以下が作られる

 /etc/letsencrypt/live/alb.anagix.com:
  合計 0
  drwxr-xr-x 2 root root 75  9月 20 14:59 .
  drwx------ 5 root root 75  9月 20 16:12 ..
  lrwxrwxrwx 1 root root 38  9月 20 14:59 cert.pem -> ../../archive/alb.anagix.com/cert1.pem
  lrwxrwxrwx 1 root root 39  9月 20 14:59 chain.pem -> ../../archive/alb.anagix.com/chain1.pem
  lrwxrwxrwx 1 root root 43  9月 20 14:59 fullchain.pem -> ../../archive/alb.anagix.com/fullchain1.pem
  lrwxrwxrwx 1 root root 41  9月 20 14:59 privkey.pem -> ../../archive/alb.anagix.com/privkey1.pem

2.jupyterhubのhttps化
 以下を /etc/jupyterhub/jupyterhub.pyに加える
JupyterHub.ssl_cert = u'/etc/letsencrypt/live/alb.anagix.com/fullchain.pem'
c.JupyterHub.ssl_key = u'/etc/letsencrypt/live/alb.anagix.com/privkey.pem'

 jupyterの起動:
    jupyterhub --ip=192.168.0.105 --config=/etc/jupyterhub/jupyterhub.py

3.chef serverのlets encrypt化
 これまでは、おれおれ証明を使っていた
  /var/opt/opscode/nginx/ca: を以下のように変更した
 lrwxrwxrwx  1 root    root     51  9月 22 21:45 home.anagix.com.crt -> /etc/letsencrypt/live/home.anagix.com/fullchain.pem
 lrwxrwxrwx  1 root    root     49  9月 22 21:45 home.anagix.com.key -> /etc/letsencrypt/live/home.anagix.com/privkey.pem

 途中で、502 Bad Gatewayというエラーがでるようになった。chef-server-ctl reconfigureしてもrestartしても改善しなかったが、本体をrebootしたら直った!

4.phusion passengerでapacheを使ったALB
  これまで、http://alb.angix.com:8180/でアクセスしたものを、https://alb.anagix.com:8183/に変更。
 たとえば、http://alb.anagix.com:8180/projects/183は、https://alb.anagix.com:8183/projects/183
  にrewriteするようにした。
 そのため、httpd.confに以下を記述し
Listen 8180
Listen 8183
 alb.confを以下のように変更した:

<VirtualHost *:8180>
   ServerName alb.anagix.com
   DocumentRoot /home/moriyama/work/alb2/public
   RewriteEngine on
   RewriteRule ^(.*)$ https://alb.anagix.com:8183$1 [R,L]
</VirtualHost>

<VirtualHost *:8183>
   ServerName alb.anagix.com
  ...
   SSLEngine on
   SSLCertificateFile     /etc/letsencrypt/live/alb.anagix.com/fullchain.pem
   SSLCertificateKeyFile  /etc/letsencrypt/live/alb.anagix.com/privkey.pem
   SSLCertificateChainFile /etc/letsencrypt/live/alb.anagix.com/chain.pem
</VirtualHost>


5.gitlab
6.docker registry
  letsencryptのSSL証明書でdocker registryを動かすに書いたように、/etc/letsencrypt/live/alb.anagix.comで
  run-docker-registry を実行する
Comments