プロジェクト

全般

プロフィール

Let's Encrypt 証明書発行(パッケージ版)

  • Let's EncryptでのSSL証明書発行に関するページです。

前提条件

  • このソフトウェアの構築には下記の導入が前提となります。
    • epelリポジトリの登録
  • 証明書の有効期限は3ヶ月です。よってcronでの自動更新を含めた解説を行います。

ダウンロード

インストール

  • EPELリポジトリを有効にします
    # yum install epel-release
    
  • パッケージをインストールします
    # yum install certbot certbot-apache
    

証明書の作成

  • Apache/Nginxおよび80/443ポートをListenしているサービスを落とします。
    # systemctl stop httpd
    
  • 次のコマンドを実行します。
    # certbot certonly --standalone -d  www.example.com -m postmaster@example.com --agree-tos
  • ライセンス同意、サポート情報受信可否を行い以下に証明書ファイルが作成されます。
    /etc/letsencrypt/live/www.example.com
    README  cert.pem  chain.pem  fullchain.pem  privkey.pem
    
  • 停止しておいたサービスを再開させます
    # systemctl start httpd
    

自動更新

*自動更新スクリプトの取得と配置
curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
chmod 700 /usr/bin/certbot-auto
  • HTTPサービスの一時停止は必須です。
  • 更新用に以下のスクリプトを作成します。
    # vi /etc/letsencrypt/update.sh
    -----------------------------
    #!/bin/bash
    
    /sbin/service httpd stop
    certbot-auto certonly -a standalone -d www.example.com --renew-by-default
    /sbin/service httpd start
    exit
    
  • crontabに以下の内容を登録します。一時的にpython27を通して実行します。
  • 例として毎月1日の25時にWebサーバ向けのSSL証明書の更新を行う設定です。
    0 1 1 * * sh /etc/letsencrypt/update.sh
    

ファイルと設定箇所の例

  • Apache
    /etc/httpd/conf.d/ssl.conf
    
    SSLCertificateFile /etc/letsencrypt/live/www.example.com-0001/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com-0001/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/www.example.com-0001/chain.pem
    SSLCACertificateFile /etc/letsencrypt/live/www.example.com-0001/fullchain.pem
    
    バーチャルホストにSSLを設定している場合は、別途設定すること。
    

 

戻る