【さくらVPS】【Python】Django で Web アプリを作る(Let's Encrypt SSL証明書設定)【Part.2】

前回は、firewalld.serviceでファイアウォールの設定をし、「box-cm.com」とグローバルIPアドレスを紐付けました。

 

【さくらVPS】【Python】Django で Web アプリを作る【Part.1】

 

今回は、無料SSL証明書の「Let's Encrypt」を利用してHTTPSでアクセスできるように設定します。

 

基本的に導入手順は、以前「Let's Encrypt」を導入した手順に則ります。

レンタルサーバーのサービスを利用せずに、自分で Let's Encrypt を導入する手順

 

 

 

Let's Encrypt 導入環境の確認

初めに「Let's Encrypt」を導入する環境を確認します。

  • OS     : CentOS 7.4
  • Apache   : 2.4.6
  • OpenSSL  : 1.0.2

 

[root@SAKURA_VPS ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

[root@SAKURA_VPS ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Oct 19 2017 20:39:16

[root@SAKURA_VPS ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017

 

 

Let's Encryptの導入手順

以下の記事を参考に「Let's Encrypt」を導入します。

 

レンタルサーバーのサービスを利用せずに、自分で Let's Encrypt を導入する手順

 

 

ドメインの登録手順

初めに certbot が導入されていることを確認します。

[root@SAKURA_VPS ~]# certbot
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Certbot doesn't know how to automatically configure the web server on this system. However, it can still get a certificate for you. Please run "certbot certonly" to do so. You'll need to manually configure your web server to use the resulting certificate.
[root@SAKURA_VPS ~]#

 

エラーが出力されないので問題なさそうです。

 

ログを確認します。

[root@SAKURA_VPS ~]# cat /var/log/letsencrypt/letsencrypt.log
2017-10-28 11:59:21,377:DEBUG:certbot.main:certbot version: 0.18.1
2017-10-28 11:59:21,377:DEBUG:certbot.main:Arguments: []
2017-10-28 11:59:21,377:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#manual,PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2017-10-28 11:59:21,406:DEBUG:certbot.log:Root logging level set at 20
2017-10-28 11:59:21,406:INFO:certbot.log:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2017-10-28 11:59:21,408:DEBUG:certbot.plugins.selection:Requested authenticator None and installer None
2017-10-28 11:59:21,408:DEBUG:certbot.plugins.selection:No candidate plugin
2017-10-28 11:59:21,408:DEBUG:certbot.plugins.selection:Selected authenticator None and installer None

 

特に問題なさそうなのでSSL証明書を取得します。

 

「certbot」コマンドで「box-cm.com」用のSSL証明書を取得します。

[root@SAKURA_VPS ~]# certbot run --apache -d box-cm.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
The requested apache plugin does not appear to be installed ← apacheのプラグインが見つからないというエラーログが出力されています。
[root@SAKURA_VPS ~]#

 

しかし「The requested apache plugin does not appear to be installed」とエラーログが出力され、SSL証明書の取得に失敗しました。

 

 

Apacheのプラグインを調べたところ「python-certbot-apache」パッケージであることが分かりました。

「python-certbot-apache」をインストールします。

[root@SAKURA_VPS ~]# yum install python-certbot-apache

 

 

再度「certbot」コマンドで「box-cm.com」用のSSL証明書を取得します。

[root@SAKURA_VPS ~]# certbot run --apache -d box-cm.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for box-cm.com

We were unable to find a vhost with a ServerName or Address of box-cm.com.
Which virtual host would you like to choose?
(note: conf files with multiple vhosts are not yet supported)
-------------------------------------------------------------------------------
1: ssl.conf                       |                       | HTTPS | Enabled
-------------------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel): 1 ← 1を入力します。
Waiting for verification...
Cleaning up challenges

We were unable to find a vhost with a ServerName or Address of box-cm.com.
Which virtual host would you like to choose?
(note: conf files with multiple vhosts are not yet supported)
-------------------------------------------------------------------------------
1: ssl.conf                       |                       | HTTPS | Enabled
-------------------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel): 1 ← 1を入力します。
Deploying Certificate for box-cm.com to VirtualHost /etc/httpd/conf.d/ssl.conf

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.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 ← 2を入力します。
Created redirect file: le-redirect-box-cm.com.conf
Rollback checkpoint is empty (no changes made?)

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://box-cm.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=box-cm.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/box-cm.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/box-cm.com/privkey.pem
   Your cert will expire on 2018-01-26. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - 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

[root@SAKURA_VPS ~]#

 

今回は成功しました。

 

 

HTTPSでアクセスできることを確認する

httpsで「box-cm.com」にアクセスできるか確認します。

 

問題なくアクセスできました。

SSL証明書に関するエラーや警告も出ません。

 

SSL証明書の確認

Let's EncryptのSSL証明書を確認します。

Google Chrome の場合、SSL証明書を確認するのはちょっと忘れやすい手順です。

 

下図のようにブラウザの画面上で右クリックして「検証」をクリックします。

【さくらVPS】【Python】Django で Web アプリを作る【Part.2】

 

 

 

下図のように「Security」をクリックします。

【さくらVPS】【Python】Django で Web アプリを作る【Part.2】

 

 

 

下図のように「Security overview」が表示されるので、「View certificate」ボタンをクリックします。

【さくらVPS】【Python】Django で Web アプリを作る【Part.2】

 

 

SSL証明書の詳細を確認します。

発行者は「Let's Encrypt Authority X3」、発行元は「box-cm.com」となっています。

 

 

「証明のパス」タブをクリックすると中間証明書が「Let's Encrypt Authority X1」になっています。

 

 

まとめ

ようやくインフラ部分は設定できました。

次回からはいよいよ「Django」に挑戦します。

 

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。