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

Add Headings and they will appear in your table of contents.

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)ポートを開ける

===> 80を開けるだけで十分(2019/6/11, 2019/8/24修正)

・httpd/apache2は多分ストップする

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

・httpd/apache2再起動

・ルータ設定を戻す

(2018/10/22追記)

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

みて適当なとこに移す)

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

mineda.anagix.comの更新(2018/12/5、2019/6追加, 2019/8/24修正)

EDAサーバで以下を実行

  1. 80番ポートを一時的にあける(443は不要)

  2. systemctl stop httpd

  3. ./letsencrypt-auto certonly --standalone -d mineda.anagix.com

  4. systemctl start httpd

  5. keycloakのため、systemctl restart nginx

  6. monitのため、/etc/ssl/certs/make_monit.pem を実行し、systemctl restart monit

---------------------

2019/11/18 に追記(minedaとalbを同時に更新)

mineda側のhttpdを止めずにalb側のapache2を止めるだけでは./letsencryptは成功しない

---------------------

2019/6/11 alb.anagix.comの更新

  1. 192.168.0.25の80番ポートを一時的に開ける

  2. apache2を止める(本当に必要かはわからない。80は使ってないはずだから)

  3. edaサーバのnginxとhttpdを一時的に止める(どっちかだけのはず)

  4. albサーバの/root/certbotで./letsencrypt-auto certonly --standalone -d alb.anagix.com

  5. サービスを再開

注意: /etc/letsencrypt/live/alb.anagix.com-0002が作られたので、alb.anagix.comにrenameした

---------------------

2019/6/28 install.anagix.comの更新

  1. ルータ1の80番ポートを一時的に開ける

  2. ルータ2の443番ポートの設定を一時的に80番ポートで使う(2箇所変更必要)

  3. chef-server-ctl stop

  4. cd ~/certbot; ./letsencrypt-auto certonly --standalone -d install.anagix.com

  5. ルータ2の設定を元に戻す

  6. ルータ1の80番ポートを閉じる

  7. chef-server-ctl start

---------------------

更新についてのメモ

最初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の証明は更新される。