letsencrypt
文書の過去の版を表示しています。
let's encrypt
無料のサーバ証明書
以下nginxに証明書を設定する流れ
インストール
githubからcloneする
git clone https://github.com/certbot/certbot.git
必要なパッケージをインストールする
cd certbot ./certbot-auto
証明書の発行
証明書を発行するために、このサーバの管理者がドメインの所持者であることを確認する必要がある。let's encryptでは指定ドメインのport 80にHTTPアクセスして、certbotコマンドが作成したファイルを取得できればドメイン所持者であると見做す。
まずnginxをインストールして起動する。
以下のコマンドで証明書を発行する。-wはnginxのドキュメントルートを指定する。ここにドメイン確認のためのファイルが作成される。-dはドメイン。複数設定可能でサブジェクト代替名(SAN/Subject Alternative Name)によって、1枚で複数のサーバ名に対応する証明書が発行される。
/path/to/certbot-auto certonly --webroot -w /var/www/html -d example.com -d www.example.com
nginxには予めドメイン確認のためにアクセスされるlocationの設定をしておく。
server {
server_name: example.com;
listen 80;
root /var/www/example.com/htdocs;
location ^~ /.well-known/acme-challenge/ {
root /var/www/html;
try_files $uri =404;
}
// ... 以下略
}
server {
server_name: www.example.com
listen 80;
root /var/www/www.example.com/htdocs
location ^~ /.well-known/acme-challenge/ {
root /var/www/html;
try_files $uri =404;
}
}
httpsの設定
nginxにsslの設定を行う。
証明書は /etc/letsencrypt/live/ドメイン名 以下に設置されている。
この例では example.com か www.example.com のいずれか(-dで先に指定した方?)というディレクトリができており、その下に証明書が置かれているはず。
server {
server_name: example.com;
listen 80;
listen 443 ssl http2;
ssl on;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
root /var/www/example.com/htdocs;
location ^~ /.well-known/acme-challenge/ {
root /var/www/html;
try_files $uri =404;
}
// ... 以下略
}
server {
server_name: www.example.com
listen 80;
listen 443 ssl http2;
ssl on;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
root /var/www/www.example.com/htdocs
location ^~ /.well-known/acme-challenge/ {
root /var/www/html;
try_files $uri =404;
}
}
証明書の更新
以下をroot権限でcronで週一ぐらいの期間で実行する。
/path/to/certbot-auto renew && service nginx reload
期限切れ1ヶ月前を切ったときに実行されると証明書が更新される。
letsencrypt.1474908209.txt.gz · 最終更新: by nullpon