🦁
Go とローカル開発(SSL編)
下記の続きです
やりたいこと
SSL でローカル開発をしたい
- $ curl http://local-auth.kikunavi.net
+ $ curl https://local-auth.kikunavi.net
証明書を取得
certbot コマンドで証明書と秘密鍵を取得しましょう。
$ sudo certbot certonly --manual -d yourdomain.com -d *.yourdomain.com --preferred-challenges dns-01
ドメインが、自己所有か確認する為、TXT レコードを追加し、Enter を押すことで取得ができます
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name:
_acme-challenge.yourdomain.com.
with the following value:
V9DkaD_CqNgwwJGzf9QhxAjUMZzZpixx9FRKNQ5ILOw
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
取得した証明書と秘密鍵を ./backend/nginx/ssl
フォルダに保存し、docker-compose でマウントします
compose
./local/docker-compose.yaml
proxy:
image: arm64v8/nginx:1.23-alpine
container_name: proxy
ports:
- 80:80
volumes:
- ../backend/nginx/nginx.conf:/etc/nginx/nginx.conf
+ - ../backend/nginx/ssl:/etc/nginx/ssl
証明書を設定
次に nginx 側の設定です。ポートを 80 から 443 に変更し、ssl 証明書と秘密鍵を設定します。
main.conf
./backend/nginx/nginx.conf
user nginx;
events {
worker_connections 1024;
}
http {
server {
+ listen 443;
- listen 80;
# ご自身のドメインに変更してください
server_name local-auth.kikunavi.net;
+ ssl_certificate /etc/nginx/ssl/server.crt;
+ ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
resolver 127.0.0.11 valid=30s;
set $upstream_auth auth;
proxy_pass http://$upstream_auth:8080;
}
}
server {
+ listen 443;
- listen 80;
# ご自身のドメインに変更してください
server_name local-payment.kikunavi.net;
+ ssl_certificate /etc/nginx/ssl/server.crt;
+ ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
resolver 127.0.0.11 valid=30s;
set $upstream_payment payment;
proxy_pass http://$upstream_payment:8080;
}
}
}
確認
下記のように https で疎通できたでしょうか!
$ curl https://local-auth.kikunavi.net
this is auth api
Discussion