プロジェクト

全般

プロフィール

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
    • pyOpenSSLのバージョンでエラーが出た場合、下記のコマンドで新しいモジュールに入れ替える。
      # rpm -e --nodeps pyOpenSSL
      # pip install pyOpenSSL
      
  • ライセンス同意、サポート情報受信可否を行い以下に証明書ファイルが作成されます。
    /etc/letsencrypt/live/www.example.com
    README  cert.pem  chain.pem  fullchain.pem  privkey.pem
    
  • 停止しておいたサービスを再開させます
    # systemctl start httpd
    

自動更新

  • HTTPサービスの一時停止は必須です。(他に証明書を使用しているサービスがあれば一緒に停止したほうがいいかも)
  • 更新用に以下のスクリプトを作成します。
    # vi /etc/letsencrypt/update.sh
    -----------------------------
    #!/bin/sh
    
    systemctl stop httpd
    
    #certbot renew --dry-run
    certbot renew
    
    systemctl start httpd
    
  • 例として毎月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を設定している場合は、別途設定すること。
    

 

戻る