WEB

WEBコーダーでもわかった!!さくらVPS + 無料SSL対応!!

目次

    SSL対応の波が来ていますね。
    あっちも、そっちもです。
    自分のブログもちゃっかりSSL対応しましたが、それとは別に行ったSSL対応が大変だったので、今回はそのまとめになります。
    Wordpressの対応もありましたので、そちらもまとめました。

    注意点

    SSL対応では、サーバの環境によって対応が異なります。
    事前に自分のサーバ環境ご確認の上、記事を読んでいただけたらと思います。

    この投稿では、

    • さくらVPS
    • CentOS 6.9
    • Apache2.2
    • Let’s Encrypt

    を使用したの説明になります。

    また、作業は、SSL通信が使用可能で、https用の443番ポートのファイアーウォール通過を許可されている前提で進めていきます。
    そこまで設定が完了していない場合は、対応後にご確認いただけたらと思います。

    参考サイト

    CentOS6でLet's Encrypt! - 温室環境モニタシステムのIT工房Z

    【CentOS6】Let's Encryptを利用してApacheをHTTPS対応する - 忘備録

    CentOSで無料SSL証明書「Let’s Encrypt」を導入・自動更新する方法 | じょんからドットネット

    作業

    作業は全て、rootユーザで行いました。

    1. Python2.7のインストール

    Let’s Encryptを使用する際に必要なPythonのバージョンは2.7になりますが、CentOS 6を使用している場合、インストールされるPythonは2.6になります。
    まずは、Python2.7をインストールします。

    パッケージのアップデート

    yum update

    Python2.7のインストール

    yum install centos-release-scl-rh
    yum install python27

    使用する。

    scl enable python27 bash

    以上になります。
    これでLet’s Encryptを使用する準備ができました。

    2. Let’s Encryptのインストール

    まずは、関連ツールがEPELリポジトリにあるのでインストール。

    yum install epel-release

    続いて、ディレクトリの移動。
    自動更新する際、以下のディレクトリのほうがいいという記事が多かったので、採用しました。

    cd /usr/local

    そして、certbot-autoをインストールします。
    自動で設定してくれるので、思ったより簡単ですよ。

    wget https://dl.eff.org/certbot-auto

    権限を変更します。

    chmod a+x certbot-auto

    3. Certbotを実行と設定

    以下で実行します。

    ./certbot-auto

    実行後、インストールが始まり、「[y/N]」を確認されたら、「y」を入力し、Enterです。

    その後は以下の選択が表示されるので、選択してください。

    メールアドレス入力。自分のメールアドレスを入力。

    Enter email address (used for urgent renewal and security notices) (Enter 'c' to
    cancel):自分のメールアドレス

    利用規約。確認し「A」を入力し、Enterです。

    Please read the Terms of Service at
    https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
    agree in order to register with the ACME server at
    https://acme-v01.api.letsencrypt.org/directory
    (A)gree/(C)ancel:

    メルマガ?の受け取り。好きな方を選んで、Enterです。

    Would you be willing to share your email address with the Electronic Frontier
    Foundation, a founding partner of the Let's Encrypt project and the non-profit
    organization that develops Certbot? We'd like to send you email about EFF and
    our work to encrypt the web, protect its users and defend digital rights.
    (Y)es/(N)o: 

    どのドメインをSSL化するのか確認。希望のドメインの数字を入力し、Enterです。

    Which names would you like to activate HTTPS for?
    1: example.com
    2: www.example.com
    3: test.example.com
    Select the appropriate numbers separated by commas and/or spaces, or leave input
    blank to select all options shown (Enter 'c' to cancel):
    

    httpからhttpsへの自動ダイレクト設定。お好みの数字を入力し、Enterです。
    勝手に書き込まれるのこわかったので、「1」を選びました。

    Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
    1: No redirect - Make no further changes to the webserver configuration.
    2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
    new sites, or if you're confident your site works on HTTPS. You can undo this
    change by editing your web server's configuration.
    

    以上で、インストールが終わります。

    4. SSL証明の設定

    ここまで来たら、SSL対応はあと少しです!

    設定前に証明書の確認です。
    インストールが完了すると「/etc/letsencrypt/live/ドメイン名」の下に証明書が作成されます。
    使用するのは「cert.pem / privkey.pem / chain.pem」になるので、それぞれのパスを覚えておいてください。

    証明書のパスを確認後、実行しファイルを開きます。

    vi /etc/httpd/conf.d/ssl.conf

    ファイルを開き、下記を設定します。
    設定する行はあるので、確認しながら進めてください。

    SSLCertificateFile /etc/letsencrypt/live/ドメイン名/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/ドメイン名/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/ドメイン名/chain.pem
    

    設定が終わったらApacheの再起動です。

    service httpd restart

    以上で完了です。
    httpsでサイトを開いてみてください!!
    サイトの構成で問題なければ、httpsで表示されるはずです!!

    5. WordPressのSSL対応

    WordPressを使用している場合は、さらに設定が必要になります。
    手順を簡単にまとめてみました。

    1. サイト・データベースのバックアップ
    2. ローカル or テスト環境で、ベタ書きになっている http://〜 から始まる自サイトアドレスがないか確認。あれば修正。
    3. WPプラグイン「Really Simple SSL」をインストール。有効化。
    4. 本体の設定画面で登録しているURLを「http」→「https」に変更。
    5. サイト全体確認。くずれている箇所やコンソールエラーがあれば修正。
    6. Google AnalystやSearch ConsoleなどのURL変更の設定。

    以上です。
    そんなに難しいこともないので箇条書きでまとめました。

    注意点として、WPのバージョンによってはプラグインが使用できないかもしれないということですね。
    事前に対応する前に、サイトの構成の確認をお願いします。

    番外編. SSL証明の自動更新

    Let’s Encryptは3ヶ月で更新が切れるため、その都度更新が必要になります。
    ただし、サーバで設定すれば自動更新されるようです。

    自動更新をしたい場合は、下記サイト確認の上、対応をしてみてください。

    Let's Encrypt やっぱり自動更新されてなかった - やわらかしかっけい

    [CentOS6][Apache]Let's Encrypt CertBotでSSL対応 | HappyQuality

    まとめ

    いかがでしたでしょうか?
    実際やる前は、難しく複雑なんだろうなと思ってましたが、自動でやることも多く選択が基本なのであまり苦労はしませんでした。

    今対応に追われてたり、考えている人の参考になれば幸いです。
    ここまで読んでいただき、ありがとうございました。

    コメント一覧