運用中のウェブサイトをhttps化させる為に、無料で証明書をインストールする方法をご紹介します。
利用するのは Let’s Encrypt です。
※DNSなどの設定が完了し、ドメイン名でサイトへのアクセスを可能にしておく必要があります。
この記事の目次
Let’s Encrypt
環境
僕がインストールした環境は Debian 8 (jessie) です。
また、GCPのCloud Launcherからインストールした、bitnami wordpress の環境なので、
少し複雑な方法でのインストールになっています。予めご了承ください。
その他の環境の方は、公式のドキュメントからご確認ください。
Certbotのインストール
まずサーバーにインストールされているOSの確認
$ uname -a
自分のサーバのOSのバージョンがわからなくなった時に調べる方法
certbot というクライアントソフトウェアを使って、サーバーに証明書をインストールし、HTTPSを有効にしてくれます。
OS毎にインストールの方法が異なりますので、ご注意ください。
certbotをapt-getでインストール
$ sudo apt-get install certbot python-certbot-apache -t jessie-backports
サーバー証明書の発行
certbotを実行
$ sudo certbot certonly --webroot Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): ドメイン名を入力 Input the webroot for domainname : (Enter 'c' to cancel): /opt/bitnami/apps/wordpress/htdocs // ルートディレクトリを入力 Select the webroot for domainname: ------------------------------------------------------------------------------- 1: Enter a new webroot ------------------------------------------------------------------------------- Press 1 [enter] to confirm the selection (press 'c' to cancel): 1 // 1と入力し [enter] Input the webroot for nkmrkisk.com: (Enter 'c' to cancel):
成功すると、サーバー証明書、公開鍵などの情報が表示されます。
コメントを入れている箇所のURLは、コピーして保存しておいてください。あとで利用します。
Waiting for verification... Cleaning up challenges Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem // ここの “0000_key-certbot.pem”のPATHは残しておいてください Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem. Your cert will expire on 2017-11-16. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" // ここの “fullchain.pem”のPATHは残しておいてください - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
サーバー証明書のインストール
ここまで完了したら、サーバーへインストールをしていきます。
が、bitnami wordpressの場合は、色々とミドルウェアの設定が変更されているため、このままインストールしても失敗してしまいます。
なので、先にSSL周りのPATHの調整を行います。
DOMAIN_NAME の箇所はそれぞれ書き換えてください。
$ sudo ln -s /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem /opt/bitnami/apache2/conf/server.crt $ sudo ln -s /etc/letsencrypt/live/DOMAIN_NAME/privkey.pem /opt/bitnami/apache2/conf/server.key $ cd /opt/bitnami/apache2/bin/ $ sudo ln -s apachectl apache2ctl
Installing Let’s Encrypt certificate
ここまで完了したら、先ほどコピーして取っておいた”fullchain.pem” “0000_key-certbot.pem”などのPATHに置き換えて下記のコマンドを実行します。
$ sudo certbot install --cert-path /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem --key-path /etc/letsencrypt/keys/0000_key-certbot.pem --fullchain-path /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem
Saving debug log to /var/log/letsencrypt/letsencrypt.log No names were found in your configuration files. Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel):DOMAIN_NAME Created an SSL vhost at /etc/apache2/sites-available/000-default-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/000-default-le-ssl.conf Enabling available site: /etc/apache2/sites-available/000-default-le-ssl.conf Please choose whether HTTPS access is required or optional. ------------------------------------------------------------------------------- 1: Easy - Allow both HTTP and HTTPS access to these sites 2: Secure - Make all requests redirect to secure HTTPS access ------------------------------------------------------------------------------- Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1 // 1を入力して[enter]
これでウェブサイトがhttps://DOMAIN_NAME でもアクセスできるようになっていれば、完了です!