HTTPS化(アルファメール2+Let’s Encrypt)

最終更新日:2022/6/14

ホームページのHTTPS化について記録に残しておきます。

6月14日更新作業を実施しました。

3月22日更新作業を実施しました。

プロバイダの変更を考える時期になりました。結局もう一年アルファメール2にお願いすることにしました。

最新のwin-acme(2.1.20.1185)で独自SSLを更新してみましたがiOSの問題は解決しませんでした。

12月24日iOS上のブラウザでは認証が為されないという問題を確認しました

11月29日更新作業を実施しました。

8月27日更新作業を実施しました。

7月5日更新作業を実施しました。

GoogleがセキュアなWeb通信を推奨し、半ば強制的に個々のホームページの改善を求めるような行動が広まりつつあります。Chromeでネット見てると、特定のサイトにアクセスした時に、アドレスバーの所に「このサイトは保護されていません」という警告メッセージ出るようになったんです。いずれはセキュリティ未然のサイトは表示しないようにするというような情報もあります。
Googleは検索エンジンのシェアを盾にSEO(Search Engine Optimization)に優位になる事を飴として推進しています。

このサイト(www.toolsbox.biz)ではそもそもフォームを扱うような頁が無いため当初からセキュアな頁は用意していませんでした。しかし、今はサイト全体をセキュア化(常時SSL化)を求められています。
プロバイダもこの流れに従ってWebサーバを更新するそうです。そこで自分もセキュア化の記録を取っておこうと思います。

このサイト(www.toolsbox.biz)は大塚商会のアルファメール2をお借りして実現しています。
アルファメール2はサイバートラスト社が提供する証明書に対応するようになりましたが、流石に3800円/月の維持費は納得できません。
無料で独自SSLの証明書を発行しているサイトも存在しますので何とか実現したいと思いました。


  1. 最初の調査
  2. 実際に実現した作業手順
  3. 検証


最初の調査】

常時SSL化の作業フローは事前に先人から情報を得ておきます。手順としては以下のように示されていました。

  1. CSR(証明書署名要求)の作成
  2. サーバの証明書申し込み
  3. 認証手続き
  4. サーバ証明書(ドメイン認証型)のインストール
  5. コンテンツのレタッチ
  6. 新しいサイトへのコンテンツのUpload

CSR(証明書署名要求)の作成】

サーバの証明書申し込み】

認証手続き】

サーバ証明書(ドメイン認証型)のインストール】

コンテンツのレタッチ】

  • レタッチが必要なのは自身のサイトを静的URLとして記述してあるところが有ったら「https://→https://」にと云うように変更する必要がありました。
  • 301リダイレクト設定を設置します。https://でアクセスを受けたときに301リダイレクトでhttps://に読み替えるようにする必要があります。
  • canonicalタグの設定。 これは必須なのかどうか怪しいですが、やるべきだという先人の記述を信じます。

新しいサイトへのコンテンツのUpload】

今回はプロバイダ側が新しいWebServerに引っ越したこともあり、新しいサーバに各人がUploadし直す必要があるので、明確にUploadし直します。
同じサーバであっても多分頁のレタッチを殆どの頁に実施していると思われるので上書きUpdateは必要なのかなと思います。全体の上書きなら、全体削除後の全体Updateの方がゴミが残らないような気もしますね。


2021年4月5日

【実際に実現した作業手順】

さくらインターネットが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社の記事によると作業手順は以下のようになります。※記事とは多少順番を入れ替えています。

  1. Let’s Encrypt社の提供するツールをダウンロードし、解凍する。
  2. アルファメール2の契約情報を控える。
  3. アルファメール2の会員サイトにログインする。
    1. Webサービス項の『独自SSL』のアイコンをクリックする。
    2. 『独自SSL』の頁が開いたはずです。
      上から2つめ『独自SSL設定』をクリックする。
      ※『CSRの作成』は使いません。
    3. 『独自SSL設定』の頁が開いているはずです。
      「SSLサーバ証明書」「中間認証局証明書」「秘密鍵」の三つの入力欄が表示されているはずです。
      ここにLet’s Encrypt社の提供するツールで得られた情報をコピペします。
      この時点ではまだツールを起動して情報を得ていないので、この頁を開いたままにして置きます。
      ※アルファメール2の制限を掻潜る術をAkvabit社が教授しています。
      ※ツールにて情報を作成するのに手こずって時間が掛かると勝手にログアウトさせられてしまうかもしれません。
      1. ツール:wacs.exeを管理者権限で実行します。※アイコンを右クリックして『管理者として実行』
        コマンドプロンプト対話式です。『独自SSL設定』に貼り付ける情報をこのツールで作成します。
        このツール実行中にftpでアルファメール2のサーバに接続します。
      2. ツールが作成するファイルは3つです。
        1. www.[domain名]-key.pem
        2. www.[domain名]-chain.pem
        3. www.[domain名]-crt.pem
    4. 「SSLサーバ証明書」の欄にwww.[domain名]-crt.pemの内容をコピペします。
      pemファイルはテキストエディタで開くことが出来ます。
      ※末尾の空白行は削除すべきと云う情報があります。
    5. 「中間認証局証明書」の欄にはwww.[domain名]-chain.pemの内容をコピペします。
    6. 「秘密鍵」の欄にはwww.[domain名]-key.pemの内容をコピペします。
    7. 3つの内容を入力後、頁の下部にある『保存』ボタンを押します。
      保存が完了すると『SSLがインストールされました』というダイアログが出ます。
      エラー例として「中間認証局証明書が不正です」と云うのがあるようです。
      空白行の扱いで回避出来るようです。
    8. まだ作業は残っています。
      『独自SSL設定』の頁の3段目「常時SSL化の設定」をクリックします。
      この設定によって、サーバ内の.htaccessファイルを更新するようです。
      内容に問題が無ければそのまま『保存』をクリックします。
  4. ブラウザからサーバにアクセスして問題が無いか確認します。


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の証明書を確認できました。


2021年4月8日

【検証】

アルファメール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日 認証期限となりましたので更新作業を実施しました。

初めてのことで最低限何をすれば良いのか検討しました。結果として、

  1. ACMEツールを実行してCSRを作成に必要な情報を所得する
  2. アルファメール2の独自SSL設定を完了させます。
  3. 確認します。

既にダウンロード済みのACMEのツールを起動し、ファイル作成を実施しました。

更新は出来ました。ただ、今日から3ヶ月の更新では無く、基準日が6/1でそこから3ヶ月の8/30までとなりました。この辺りの理屈はよく判っていません。重なる期間があるので、今回の件でも期日ギリギリの7/5まで待つこと無く、6月中に更新手続きをすれば良かったのかもしれません。証明書サーバとアルファネットのサーバとの間で更新タイミングが微妙に異なります。その時差が有効期限が重なっていることで無視できると思われます。ちゃんとした見解を探しておきたいと思っています。


2021年8月27日 認証期限前ですが更新作業を実施しました。前回実施した時の基準日が気になったので今回は早めに実施してどうなるのか確認したかったのです。

結果ですが2021/08/27から2021/11/25になりました。この結果には納得です。
後は認証期限切れでの更新がどのような結果になるのか、確認しておきたいです。

あと、管理者ページが更新されていることが判りました。独自SSLに対して再設定/削除というメニューがありました。使い分けは把握していませんが、今回は『再設定』で実施しました。


2021年11月29日 うっかりしていました。更新期日を過ぎてしまいました。どこからも忘れているという連絡はありません。

このエラーが出てしまうとアクセス出来ません。拒否されて、保護されたページ(google.com)に飛んでしまうのです。
大失敗です。すぐにUpdate作業を実施しました。備忘録があると、間違えなくUpdate出来ます。

更新日が基準で90日間の有効期間となりました。
アクセス禁止状態が4日間発生した事になります。この状態は避けないといけません。反省。


12月24日iOS上のブラウザでは認証が為されないという問題を確認しました。

表示出来ないわけではないんです。ただ、普通に表示しようとすると ERR_SSL_PROTOCOL_ERROR となり、アクセスできません。LetsEncriptを正式な認証局として認めないようです。
先人の記事を確認すると『Let’s Encryptのルート証明書の期限切れが原因』との記述が見られます。
WindowsOSで普通にブラウズ出来るのですが、iOSでダメというのがなかなか理解出来ないところです。


Windows10のFireFoxでも問題を確認しました。同OS上のChromeではちゃんと認証されています。


普段Chromeしか使っていないので気付きませんでした。念のためEdgeでの挙動も確認したところ、こちらは認証されていました。
FireFoxのバージョンは72.0.2です。そんなに古くは無いと思います。

簡単には解決方法が見つからないです。とりあえず、WindosOS環境でChromeでブラウズする分には問題は無さそうなのでもう少し様子見とします。


Linux環境の挙動も確認しておく必要がありそうです。Ubuntsu21.10をダウンロードしてUSBスティックにインストールして確認して見ました。



AndroidOSでの挙動も確認すべきでしょう。手元にはNexus7とAndroidTVBoxが有ります。


最新のwin-acme(2.1.20.1185)で独自SSLを更新してみましたがiOSの問題は解決しませんでした。

iOSやFireFoxの問題を解決することが出来ないかと、ツール:win-acmeの最新版で独自SSLを更新して見ました。win-acme(2.1.20.1185)はwin-acme(2.1.16.1037)から内容が微妙に変わっており、期待しましたが、期待通りの結果にはなりませんでした。証明書の有効期間が2022年3月24日まで延長されました。


プロバイダの変更を考える時期になりました。結局もう一年アルファメール2にお願いすることにしました。

HTTPS化でLetsEncriptを使う上で自動更新が難しい『アルファメール2』から別のプロバイダに移行する計画をしていましたが、LetsEncriptで認証されないOSやブラウザ等々が発生している事があり、どうすべきなのか再検討することにしました。そのため今暫く時間が欲しいので、アルファメール2の1年更新をしました。


3月24日の期限前に実施してみました。

期限前に更新したらどうなるか? win-acmeの前のバージョン(2.1.16.1037)を使ったらどうなるか? 確認しました。
結果は問題無く更新出来たいようです。
次回の期限は6月20日になりました。
2.1.16.1037のバージョンを使ったのは、最初2.1.20.1185版を起動して始めたのですが、この備忘録を更新していなかったので途中で何を入力して良いか判らなくなってしまい、この備忘録バージョンでやり直したのでした。
とりあえず昔のバージョンでも使えた事は良かったですが、新しいバージョンでの備忘録更新も必要だなと感じた次第です。


6月14日更新作業を実施しました。

更新期限1週間前ですが暇なのでUpdateしました。win-acme(2.1.20.1185)を使用しました。最新版は2.1.22.1のようです。
https://github.com/win-acme/win-acme/releases/download/v2.1.22.1267/win-acme.v2.1.22.1267.x64.pluggable.zip
折角なので最新版で実施すべきなのですが、毎回微妙な変化が有り躓くので経験のあるバージョンで実施しました。
※本来なら 2.1.16.1037 と 2.1.20.1185 の違いも明示すべきなのですが、、、

作業自体は無事成功し更新されました。2022年9月12日の期限に更新されています。


マイコンにWebserverを構築したときもHTTPS化が出来るのか?結論的には出来るようです。

この件は新たにスレッドを建てます。--->


戯言(nonsense)に戻る


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。