ユーザ用ツール

サイト用ツール


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.comwww.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 · 最終更新: 2016/09/26 16:43 by nullpon