Django で構築されたサイトに対して、さくらのSSL(JPRS ドメイン認証型)を導入する

SSLの導入

Django で構築されたサイトに対してさくらのSSL(JPRS ドメイン認証型)を導入します。
※ 以下、秘密鍵・CSRの生成〜さくらのSSL申し込みまで全て完了していることが前提となります。

困った点

さくらの JPRS ドメイン認証型では SSL 証明書を発行するにあたり、認証ファイルを指定の URL でアクセス可能な場所に設置する必要があるという点で少し手間取ってしまいました。

認証ファイルの設置場所をどこにするのかは、Django では静的ファイルを static ディレクトリに設置するので問題ないのですが、Laravel のように public ディレクトリ(公開ディレクトリ)に設置したらそのまま閲覧可能というわけにはいかないので、【tattch】は下記手順のように対応しました。

SSL証明書を取得する手順

さくらのSSL(JPRS ドメイン認証型)は申し込みを完了後、SSL証明書を取得するまでに下記の手順を実施することになります。

  1. さくらの会員メニューから認証ファイルを取得します。
    会員メニューにログインし、契約情報の一覧から契約したサービスの「サーバ証明書」ボタンをクリックすると、詳細画面より認証ファイル(テキストファイル)をダウンロードできます。
  2. 認証ファイルを設置します。
    1でダウンロードしたテキストファイルを下記 URL でアクセス可能な場所に設置しないといけない仕様となっています。
    Django では静的ファイルは、static ディレクトリ内に設置するので、static ディレクトリ配下の適当な場所に設置します。
    https://[ルートドメイン名]/.well-known/pki-validation/[ランダムな文字列].txt
  3. 認証ファイルを指定のURLで閲覧可能にします。
    SSL証明書が発行されるまで一時的に view を追加します。

    urls.py

    views.py

    無理やりではありますが、これで指定の URL でアクセスすると認証ファイルを開くことが可能となります。
  4. SSL証明書が発行されるまで待ちます。
    さくらの SSL(JPRS ドメイン認証型)は、即日発行ですので、そこまで時間はかからないです。【tattch】の場合、1時間くらいだったと思います。
  5. SSL証明書を取得します。
    SSL証明書が発行されたら会員メニューからダウンロード可能となるので、Apache なり Nginx なりに適応して完了となります。
    一時的に追加した view はいらないので、url と共に削除してください。
目次へ戻る

終わりに

他にもっといい方法がありそうですが、とりあえずSSL証明書が発行さえすれば良いのであまり気にしないことにします。
SSLを導入したことだし、せっかくなので普段はそんなに深く追求していないサイトのセキュリティ向上を頑張っていきたいと思います!

目次へ戻る