nginxのWebサイトでletsencryptのacme認証を疎通させる

nginxを利用しているWebサーバでletsencryptを導入するときに、アプリケーションの固有の設定等でacme認証に失敗する場合がある。

対策として、nginxの公式を参考に下記のように該当するlocationを疎通させれば正常に認証ができた。


  location ~ /.well-known {
        location ~ /.well-known/acme-challenge/(.*) {
                add_header Content-Type application/jose+json;
        }
  }

※参考
http://nginx.org/en/docs/http/request_processing.html

letsencryptの設定メモ

■セットアップ

githubからソースをcloneして取得する


$su

#mkdir letsencrypt
#cd letsencrypt
#yum install git
#git clone https://github.com/letsencrypt/letsencrypt.git

■鍵の生成(新規)

letsencryptのSSLを新規作成する場合は下記のような書式で実行する


#新規
#sudo ./letsencrypt-auto certonly  --webroot --webroot-path (nginxのルートフォルダ) -d (ドメイン名)

■鍵の生成(更新)

既にletsencryptのSSLを作成済みで更新する場合


# 更新
#sudo ./letsencrypt-auto --renew certonly --webroot --webroot-path (nginxのルートフォルダ) -d (ドメイン名)

■nginxのconfファイル設定

nginxのconfファイルのSSLを下記のように指定すればOK

    ssl_certificate /etc/letsencrypt/live/(ドメイン名)/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/(ドメイン名)/privkey.pem;

■nginx サービスを再起動

#systemctl restart nginx.service

サービス再起動後にhttpsを確認、letsencryptによって信頼された証明書になっていればOK