最終更新日:2021/7/5
作成日:2021/2/5
ホームページのHTTPS化について記録に残しておきます。
GoogleがセキュアなWeb通信を推奨し、半ば強制的に個々のホームページの改善を求めるような行動が広まりつつあります。Chromeでネット見てると、特定のサイトにアクセスした時に、アドレスバーの所に「このサイトは保護されていません」という警告メッセージ出るようになったんです。いずれはセキュリティ未然のサイトは表示しないようにするというような情報もあります。
Googleは検索エンジンのシェアを盾にSEO(Search Engine Optimization)に優位になる事を飴として推進しています。このサイト(www.toolsbox.biz)ではそもそもフォームを扱うような頁が無いため当初からセキュアな頁は用意していませんでした。しかし、今はサイト全体をセキュア化(常時SSL化)を求められています。
プロバイダもこの流れに従ってWebサーバを更新するそうです。そこで自分もセキュア化の記録を取っておこうと思います。このサイト(www.toolsbox.biz)は大塚商会のアルファメール2をお借りして実現しています。
アルファメール2はサイバートラスト社が提供する証明書に対応するようになりましたが、流石に3800円/月の維持費は納得できません。
無料で独自SSLの証明書を発行しているサイトも存在しますので何とか実現したいと思いました。
【最初の調査】
常時SSL化の作業フローは事前に先人から情報を得ておきます。手順としては以下のように示されていました。
【CSR(証明書署名要求)の作成】
【サーバの証明書申し込み】
【認証手続き】
【サーバ証明書(ドメイン認証型)のインストール】
【コンテンツのレタッチ】
- レタッチが必要なのは自身のサイトを静的URLとして記述してあるところが有ったら「https://→https://」にと云うように変更する必要がありました。
- 301リダイレクト設定を設置します。https://でアクセスを受けたときに301リダイレクトでhttps://に読み替えるようにする必要があります。
- canonicalタグの設定。 これは必須なのかどうか怪しいですが、やるべきだという先人の記述を信じます。
【新しいサイトへのコンテンツのUpload】
今回はプロバイダ側が新しいWebServerに引っ越したこともあり、新しいサーバに各人がUploadし直す必要があるので、明確にUploadし直します。
同じサーバであっても多分頁のレタッチを殆どの頁に実施していると思われるので上書きUpdateは必要なのかなと思います。全体の上書きなら、全体削除後の全体Updateの方がゴミが残らないような気もしますね。
【実際に実現した作業手順】
さくらインターネットがHTTPS対応している事が判り、また、ドメインの移行サポートもしてくれるそうです。
更に、大塚商会よりも維持費が安い。これならいろいろ悩むより移行した方がいいと考えました。
ただ、大塚商会とは1年更新契約としているため、来年(2022年)2月までの分を払込済みです。
そこで移行は来年として、もう少し挑戦してみることにしました。Akvabit社のWebSiteに『アルファメール2で独自SSLを無料で』と云う記事がありました。ざっと見たところ、認証サーバを無料のLet’s Encryptとし、実際の作業を順次紹介しています。読み替える部分が少ないので、ここを参照しながら挑戦したいと思いました。
特に、CSRの作成/取得方法について、大塚商会はサイバートラストの証明が大前提のため、殆ど説明が為されていません。アルファメールのサポートもサイバートラスト以外はほとんどサポートしてくれないようです。
Akvabit社のサイトは、この辺りを踏まえたサポートがされています。
ユーザコメントも有用な情報がありました。Let’s Encrypt社の提供するツールのバージョンによってトラブルがあるようで、その辺りも有用です。結果を伝えておくと、HTTPS化に成功しました。Akvabit社の情報が在ってこそです。
ただ、Let’s Encryptは有効期間が最大90日で、アルファメールだと自動更新がうまく実現できないので、都度更新手続きが発生するようです。そのため作業手順を備忘録として残しておく必要があるのです。まずはAkvabit社の記事を一通り読んで準備しました。
- 作業環境はWindows7SP1x64環境です。
- Let’s Encrypt社の提供するツールは2021年4月6日時点で最新版はwin-acme.v2.1.16.1037でした。
※Windows版は4種類提供されています。32bit/64bitOSの別、フル機能版(pluggable)/機能限定版(trimmed)
自分はx64.pluggableを選択しました。解凍後のサイズは約70MBです。Pathが短いほうが扱いやすいのでCドライブ直下に解凍後のフォルダを移動しました。- Let’s Encrypt社の発行する証明書は有効期限90日です。さくらインターネット等は自動更新するような仕組みを提供しているようですが、アルファメールはそれを提供して居らず、手動更新が必須です。
- アルファメールの契約情報を控えます。登録ドメイン、FTPの転送サーバーURL、ログイン名、パスワードが必要です。
- 実行するWindowsPCにログオンしている名前およびパスワードが必要です。
コマンドプロンプトにてコマンド【whoami】を実行することでログオン名は取得出来ます。
@ITの記事Akvabit社の記事によると作業手順は以下のようになります。※記事とは多少順番を入れ替えています。
- Let’s Encrypt社の提供するツールをダウンロードし、解凍する。
- アルファメール2の契約情報を控える。
- アルファメール2の会員サイトにログインする。
- Webサービス項の『独自SSL』のアイコンをクリックする。
- 『独自SSL』の頁が開いたはずです。
上から2つめ『独自SSL設定』をクリックする。
※『CSRの作成』は使いません。- 『独自SSL設定』の頁が開いているはずです。
「SSLサーバ証明書」「中間認証局証明書」「秘密鍵」の三つの入力欄が表示されているはずです。
ここにLet’s Encrypt社の提供するツールで得られた情報をコピペします。
この時点ではまだツールを起動して情報を得ていないので、この頁を開いたままにして置きます。
※アルファメール2の制限を掻潜る術をAkvabit社が教授しています。
※ツールにて情報を作成するのに手こずって時間が掛かると勝手にログアウトさせられてしまうかもしれません。- 「SSLサーバ証明書」の欄にwww.[domain名]-crt.pemの内容をコピペします。
pemファイルはテキストエディタで開くことが出来ます。
※末尾の空白行は削除すべきと云う情報があります。- 「中間認証局証明書」の欄にはwww.[domain名]-chain.pemの内容をコピペします。
- 「秘密鍵」の欄にはwww.[domain名]-key.pemの内容をコピペします。
- 3つの内容を入力後、頁の下部にある『保存』ボタンを押します。
保存が完了すると『SSLがインストールされました』というダイアログが出ます。
エラー例として「中間認証局証明書が不正です」と云うのがあるようです。
空白行の扱いで回避出来るようです。- まだ作業は残っています。
『独自SSL設定』の頁の3段目「常時SSL化の設定」をクリックします。
この設定によって、サーバ内の.htaccessファイルを更新するようです。
内容に問題が無ければそのまま『保存』をクリックします。- ブラウザからサーバにアクセスして問題が無いか確認します。
【Let’s Encrypt社の提供するツールのツールをダウンロードし、解凍しておきます。】
【アルファメール2の契約情報を控えておきます。】
https://www.otsuka-shokai.co.jp/ から お客様マイページ にログインし、『契約情報の確認』頁に入り、『契約内容の確認する』をクリックします。
※『印刷用画面を表示』ボタンをクリックすると必要な情報をPDFとしてダウンロード出来ます。
このPDFの内容はコピペ可能な形式です。
※情報を控えればこのサイトはログアウトして構わないです。【アルファメール2の会員サイトにログインします。】
https://www.alpha-mail.jp/ からログインします。
管理者としてログインしてくださいね。
【Webサービス項の『独自SSL』のアイコンをクリックします。】
【『独自SSL』の頁が開いたはずです。上から2つめ『独自SSL設定』をクリックします。※『CSRの作成』は使いません。】
【『独自SSL設定』の頁が開いているはずです。「SSLサーバ証明書」「中間認証局証明書」「秘密鍵」の三つの入力欄が表示されているはずです。ここにLet’s Encrypt社の提供するツールで得られた情報をコピペします。
※この時点ではまだツールを起動して情報を得ていないので、この頁を開いたままにして置きます。
※アルファメール2の制限を掻潜る術をAkvabit社が教授しています。】
【ツール:wacs.exeを管理者権限で実行します。
※アイコンを右クリックして『管理者として実行』】
コマンドプロンプト対話式です。『独自SSL設定』に貼り付ける情報をこのツールで作成します。
このツール実行中にftpでアルファメール2のサーバに接続します。
証明書作成作業を開始します。※作成完了すると再びこの画面になります。終了時は‘Q’です。
新規作成時は m <Enter> です。
3つの選択肢となっています。手動登録したいので 2 <Enter> を入力します。
※この画面はv2.1.3.671とは異なるようです。
SSLを適用させたいドメインを入力します。https://は要らないようです。
間違いなければ<Enter>を入力します。
どのようなルートでサーバーに秘密鍵ファイルをアップロードしたいかを聞かれています。
アルファメール2では独自の方法で登録する必要があるのですが、上記選択肢の中では直接該当するモノが有りません。FTPを選択し、転送されるべきファイルを手元に保存して、『独自SSL設定』に保存することになります。
ftpを選んでしまっていますので、有効なサーバを登録する必要があります。
アルファメールの契約情報に記載されている情報を入力します。
※このツールはコピペが出来ません。Exampleに有るように、ここではftp://を付けてください。
web.configファイルを作ってよいかと聞かれていますので y <Enter> とします。
続いてFTPログイン名およびログオンパスワードをアルファメールの契約情報に従って入力します。
証明書署名要求(CSR)で使用するキー(タイプ)などの証明書のプロパティを選びます。
1: Elliptic Curve key 2: RSA keyの二択なのですが、RSA key を選択します。 2 <Enter>
続いて、証明書の保存場所を選択します。
1:IISサーバーへの保存
2:PEM形式でエンコードされたファイル
3:PFX書庫
4:Windows証明書ストア
の四択です。
PEM形式でエンコードされたファイルを選択します。 2 <Enter>
PEM形式でエンコードされたファイルの保存場所を聞かれます。
ルートにしたいので / とし、手元では Cドライブの直下(C:¥)に保存する予定です。
パスワードは無しでいいのでそのまま <Enter>を入力します。
※パスワードを付ける場合の検討はしていません。
※この項はv2.1.3.671では問われないようです。
この項はv2.1.3.671とは選択肢が異なります。
これ以上の保存は不要なので 5 <Enter> とします。
これ以上の処理は不要かと思います。
4 <Enter> を入力します。ファイルを上書き保存する必要があります。
y <Enter> を入力します。
※既にftpサーバ側に同様のファイルが存在するためにOverwriteという問いになっているようです。本当に初めての場合は、加入者契約書を読むように促されるようです。同意したあとに問題が起きたときの情報転送先(メールアドレスの入力が求められます。)
y <Enter>を入力してください。ここが肝です。
自動化の情報が表示されるのですが、アルファメール2では使えません。しかし、ファイル保存のために実行する必要があるのです。y <Enter>を入力して、該当するユーザー名を求められます。
コマンドプロンプトを起動して whoami (Who am I ? 私は誰?)を実行して正しいログオンユーザ名を入力します。
続いてパスワードも入力しておく必要があります。C:\に必要なファイルが作成されました。これでこのツールは終了して構わないです。※終了するにはQ<Enter>です。
【ツールが作成するファイルは3つです。】
このバージョンのツールは4つのファイルを作成しましたが、使用するのは3つです。
l※-chain-only.pemは使いません。
【www.[domain名]-key.pem】
「秘密鍵」に該当します。
【www.[domain名]-chain.pem】
「中間認証局証明書」に該当します。
【www.[domain名]-crt.pem】
「SSLサーバ証明書」に該当します。
【「SSLサーバ証明書」の欄にwww.[domain名]-crt.pemの内容をコピペします。pemファイルはテキストエディタで開くことが出来ます。※末尾の空白行は削除すべきと云う情報があります。】
【「中間認証局証明書」の欄にはwww.[domain名]-chain.pemの内容をコピペします。】
【「秘密鍵」の欄にはwww.[domain名]-key.pemの内容をコピペします。】
【3つの内容を入力後、頁の下部にある『保存』ボタンを押します。】
保存が完了すると『SSLがインストールされました』というダイアログが出ます。
エラー例として「中間認証局証明書が不正です」と云うのがあるようです。空白行の扱いで回避出来るようです。
【まだ作業は残っています。】
『独自SSL設定』の頁の3段目「常時SSL化の設定」をクリックします。
この設定によって、サーバ内の.htaccessファイルを更新するようです。
内容に問題が無ければそのまま『保存』をクリックします。
【ブラウザからサーバにアクセスして問題が無いか確認します。】
結局のところ成功しました。
Chromeからアクセスしたところ、LetsEncryptの証明書を確認できました。
【検証】
アルファメール2とLet’s Encryptの間でSSL認証が出来る事が確認出来たわけですが、ちょっと検証が必要かと思いました。
まず、アルファメール2ですが、【独自SSL】という仕組みを用意しているわけで、任意の認証サーバに対応していると考えます。
https://www.alpha-mail.jp/help_alpha2/mail_l_2_0313.html
に作業手順が示されていることが判りました。これを見ると、大塚商会のサポートは無いけど、アルファメール2に必要な情報(CSR)を纏めて、認証サーバに送り、発行された情報を、『独自SSL設定』に登録すれば実現出来るよと云っています。
無償の認証システムで手間の掛かる手続きは出来ません。Let’s Encryptは自動で手続きを完了する術を幾つか用意しています。
アルファメール2でも可能な術が有ったと云う事です。この手順は正しく、今回成功したアルファメール2とLet’s Encryptの遣り取りになります。
認証情報がサーバ情報の入力値を元にACME(Automated Certificate Management Environment)ツールが作成しています。CSRの作成を置き換えているのでしょうが、秘密鍵の入力が手入力だという点は特筆です。アルファメール2の説明書には『管理者機能以外の方法でCSRを作成する場合、「秘密鍵を入力する」を選択し、「秘密鍵を表示する▼」をクリックします。入力欄にはSSLサーバ証明書とペアになっている秘密鍵の------BEGIN RSA PRIVATE KEY-----から-----END RSA PRIVATE KEY-----までの内容をコピーして貼り付けてください。』という説明がありました。
アルファメール2が認める方法で実現出来ていることは確認出来ました。
ただ、アルファメールのサポートは受けられないという大問題は残ります。自分も冷たい対応を受けました。
そして証明書の更新に関して自動更新が出来ないので、この手順を3ヶ月毎に実施する必要がありそうです。
※親身になってLet’s Encryptのサポートをしてくれるプロバイダに引っ越しすることは意味があります。
2021年7月5日 認証期限となりましたので更新作業を実施しました。
初めてのことで最低限何をすれば良いのか検討しました。結果として、
- ACMEツールを実行してCSRを作成に必要な情報を所得する
- アルファメール2の独自SSL設定を完了させます。
- 確認します。
既にダウンロード済みのACMEのツールを起動し、ファイル作成を実施しました。
更新は出来ました。ただ、今日から3ヶ月の更新では無く、基準日が6/1でそこから3ヶ月の8/30までとなりました。この辺りの理屈はよく判っていません。重なる期間があるので、今回の件でも期日ギリギリの7/5まで待つこと無く、6月中に更新手続きをすれば良かったのかもしれません。証明書サーバとアルファネットのサーバとの間で更新タイミングが微妙に異なります。その時差が有効期限が重なっていることで無視できると思われます。ちゃんとした見解を探しておきたいと思っています。
マイコンにWebserverを構築したときもHTTPS化が出来るのか?結論的には出来るようです。
この件は新たにスレッドを建てます。--->