はじめに
数年前から、ドメインのSSL対応にGithub公開リソースのACMEを利用してきた。新規サブドメインの開設に当たって、以前と同様にACMEを利用するつもりで、ACMEの証明書サーバはLets encryptからZeroSSLへ移行済みなど変更があったので、作業手順をメモしておく。
準備
$su root #cat /etc/redhat-release CentOS release 6.8 (Final) #acme.sh --upgrade #acme.sh --version https://github.com/acmesh-official/acme.sh v3.0.7
DNSゾン追加
サーバプロバイダの管理画面またはパネルから、サブドメインに必要なDNSゾンの追加を行うことができる。これでサブドメインとIPと紐づける。追加手順はサーバプロバイダのほうへ確認するので、ここでは詳細を省く。
Apache対応
サブドメイン追加
vhost.confを開く
#nano /etc/httpd/conf.d/vhost.conf
vhost.confへ内容追加。
<VirtualHost *:80> ServerName new-sub.example.com ServerAlias www.new-sub.example.com Redirect / https://new-sub.example.com/ </VirtualHost> <VirtualHost *:443> ServerAdmin mai@example.com DocumentRoot /var/www/html/new-sub.exmaple.com ServerName new-sub.exmaple.com ServerAlias www.new-sub.example.com # ここにあとで追加内容ある ErrorLog "/var/log/httpd/new_error_log" CustomLog "/var/log/httpd/new_access_log" combined </VirtualHost>
Apache再起動
#servcie http restart
ACME対応
証明書作成
#acme.sh --issue -d new-sub.example.com --apache
証明書コピー
コピー先を指定しておく。
#acme.sh --install-cert -d example.com \ --cert-file /root/apache/new-sub.example.com/cert.pem \ --key-file /root/apache/new-sub.example.com/key.pem \ --fullchain-file /root/apache/new-sub.example.com/fullchain.pem \ --reloadcmd "service httpd restart"
証明書確認
#acme.sh --info -d new-sub.example.com
vhost.confに内容追加
<VirtualHost *:80> ServerName new-sub.example.com ServerAlias www.new-sub.example.com Redirect / https://new-sub.example.com/ </VirtualHost> <VirtualHost *:443> ServerAdmin mail@example.com DocumentRoot /var/www/html/new-sub.example.com ServerName new-sub.example.com ServerAlias www.new-sub.example.com SSLEngine on SSLCertificateFile /root/apache/new-sub.example.com/cert.pem SSLCertificateKeyFile /root/apache/new-sub.example.com/key.pem SSLCertificateChainFile /root/apache/new-sub.example.com/fullchain.pem <Directory "/var/www/html/new-sub.example.com"> AllowOverride All </Directory> ErrorLog "/var/log/httpd/new_error_log" CustomLog "/var/log/httpd/new_access_log" combined </VirtualHost>
Apache再起動
#servcie http restart
証明書自動更新
#EDITOR=nano crontab -e 56 * * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null