Private IP アドレスの HAProxy を Let's Encrypt の証明書で HTTPS 運用
3417 ワード
オフィスにあるサーバで運用している HAProxy に VPN 経由で https アクセスしたくて、証明書を Let's Encrypt で作成して設定したメモです。
環境
- DNS: AWS Route53 を利用
- OS: Ubuntu 18.04.1
- HAProxy
Certbot のインストール
Certbot - Ubuntubionic Nginx を参考にしてインストールしました
Add Certbot PPA
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
Install Certbot
$ sudo apt-get install certbot python-certbot-nginx
証明書の作成
$ sudo certbot certonly --manual --preferred-challenges dns
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c'
to cancel):
$ sudo certbot certonly --manual --preferred-challenges dns
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c'
to cancel):
と聞かれるので、所有するドメイン名を入力します。そのとき、ワイルドカードを利用すると便利です。
*.example.com
DNS に TEXT レコードを作成する名前と値が表示されますので、DNS にレコードを追加します。
_acme-challenge.example.com TXT "<設定する値>"
DNS への反映に若干時間がかかる場合があるので、少し待って Enter キーを押した方がいいと思います。
成功すれば、/etc/letsencrypt/live/example.com
/ 以下にファイルが作成されます。
Private IP アドレスの DNS レコードの登録
DNS に A レコードを作成します。
internal.example.com A 192.168.1.1
HAProxy の設定
fullchain.pem と privkey.pem を結合します。
cat fullchain.pem privkey.pem > server.pem
/etc/haproxy/haproxy.cfg
を編集します。
global
daemon
maxconn 100
ssl-default-bind-options ssl-min-ver TLSv1.2
tune.ssl.default-dh-param 2048
defaults
mode http
timeout connect 50000ms
timeout client 50000ms
timeout server 50000ms
frontend https-in
bind *:443 ssl crt /etc/letsencrypt/live/example.com/server.pem
default_backend servers
backend servers
server server1 127.0.0.1:8080 maxconn 100
option forwardfor
http-request set-header X-Forwarded-Host %[req.hdr(host)]
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
HAProxy を再起動します
$ sudo systemctl restart haproxy
Author And Source
この問題について(Private IP アドレスの HAProxy を Let's Encrypt の証明書で HTTPS 運用), 我々は、より多くの情報をここで見つけました https://qiita.com/s_edward/items/cf1b9ae51587becf2cf2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .