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

Post date: 2016/09/22 12:49:40

注意(2018/6/13追記):certbotの仕様がかわって443ポートを開けるのは無効になった -> 80ポートを開けること!

(2018/7/27追記):上記変更は一時的なものだったようで、80ポートと443ポートを開ける必要がある。

この時、httpdを動かしたままだと、Problem binding to port 443: Could not bind to IPv4 or IPv6.というエラーがでる。

私の場合、以下の手続きが必要(次回確認する)

・2つのルータの443(と80)ポートを開ける

・httpdは多分ストップする

・./letsencrypt-auto certonly --standalone -d alb.anagix.com

・httpd再起動

・ルータ設定を戻す

(2018/10/22追記)

dockerの中でやるべきところ、そとでやったら面倒なコピーをする羽目に(archiveをコピーして、liveのシンボリックリンクを

みて適当なとこに移す)

dockerの中で、service apache2 restartすること!

mineda.anagix.comの更新(2018/12/5)

EDAサーバで以下を実行

  1. 80番ポートを一時的にあける(443は不要)
  2. ./letsencrypt-auto certonly --standalone -d mineda.anagix.com
  3. ???keycloakのため、systemctl restart nginx

更新についてのメモ

最初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 を実行する

注意: 443はrouterで変なところに飛ばしているので(優先度7)、105に暫時飛ばす必要あり

mineda.anagix.comのSSL証明書の入手メモ(2018-8-23)

・443ポートは使ってないので、ルータを一時的に開けるだけで良い。

・nginxを再起動すると、keycloakの証明は更新される。