シャローム!Sato-Gです。
ベランダ菜園(といってもプランターだけど)で育ててきたルッコラはこれが最後。ルッコラのゴマのような風味はこれまでパスタやサラダに活躍してきたけど当分は味わえない。ちょっと寂しい。
「当分は」というのは実は二期作めが始まっているから。
今月下旬くらいからは少しずつ収穫できるのではないかと思っている。
さて、前々から書こうと思っていたんだけど、今回はSisense ServerのSSL化の話。
SisenseはHTTPのままだと何かと不便だ。
まず、8081ポートをURLで指定するのが面倒くさい。そもそもスマートじゃない。
Chromeの「保護されていません」警告がウザい。
そして何より通信が暗号化されていないので悪意をもった第三者に傍受される恐れがある。
最後に、ここが大事なのだが、SisenseでiFrameで外部サイトに組み込みするなど外部サイト連携を行うときはHTTPS化は絶対にやっておかなければならない。
というわけで、今回は社内のデモサーバを無料のSSL証明書である「Let's Encrypt」を使ってSSL化してみたので、その手順を紹介する。
Let's Encryptは米国の非営利団体であるISRG(Internet Security Research Group)が提供している無料のSSL証明書だ。
無料のSSL証明書として最も発行枚数が多く、現段階では世界で3億枚以上の有効な証明書を発行されていると言われる。
ISRGは、Facebookやシスコシステムズ、Google, Akamai Technologies、Verizonといった数多くの大手企業に支えられ、日本ではさくらインターネットもスポンサーの1社であり、同社ののSSLはLet's Encryptを利用している。
Windows ServerにLet's Encryptをセットアップするにはwin-acmeというCLIを使う。
GitHubで公開されているので、以下のサイトからダウンロードする。
▼win-acmeのダウンロードサイト(GitHub)
https://github.com/win-acme/win-acme/releases
Supportのすぐ下にAsettsがあるので、該当するzipファイルをダウンロードする。僕はx64 pluggableを選択した。解凍先はどこでもいいのだが、C:\Tools\win-acmeに解凍しておいた。
今回はsisense-insight.comというドメインを例にSSLを適用する手順を説明するが、このドメインは以前にSSL証明書を取得しいる。このドメインに対して再度証明書を取得し直すという手順になるが、初めて取得する時はメールアドレスの入力などが必要でその手順を最後に補足しておいた。
尚、証明書の期限は90日のため放置すると90日で利用できなくなる。
でも大丈夫。win-acmeで自動更新を設定してしまえば、期限が切れることなく使える。
まず、win-acmeのCLIはwacs.exeである。wacs.exeを右クリックし、管理者として実行すると以下のようにacmeが立ち上がる。
さっそく、設定を進めていこう。
❶Menu
M: Create new certificate(full options) ->今回はpfxファイルの出力などを行うのでfull option
❷Domainの指定方法
2: Manual input
❸TargetとなるDomain
sisense-insight.com
❹確認
Enterキーを押す
❺Verificationのファイル取得
2: [http-01] Server verification files from memory ->接続して転送されたファイルをメモリから保存する
❻Private keyの種類
2: RSA key
❼Certificateの保存の指定
1: IIS Central Certificate Store (.pfx per domain) -> pfxで組み込む
❽Central Certificateの保存先
任意->ここではC:\Tools\win-acme\pfx
❾PFX fileのパスワード
任意
❿他の方法での保存
3: No (additional) store steps
⓫インストールの最初のステップ
1: Create or update https binding in IIS
⓬新規のバインド先
2: SisenseWeb
===ここは既存の証明書が存在する場合↓ここから===
⓭次のインストールステップ
3: No (additional) Installation step
⓮上書き確認
yes
===ここは既存の証明書が存在する場合↑ここまで===
⓯Menuの選択
Q: Quit
⓭~⓮は既存の証明書がある場合なので、新規登録の場合は以下のような手順となる
⓭' Enter email(s) for notifications about problems and abuse (comma separated):
例)sato-g@insight-lab.co.jp
⓮' Open in default apprication? (y/n*)
-yes
⓯' Do you agree with the tetms? (y*/n)
-yes
⓰' Prease choose from the menu:
L: List scheduled renewals
※これを選択することで証明書は自動更新される。これをやっておかないと証明書は90日で期限が切れて使えなくなる
SisenseサーバでSisenseの細かい設定にはConfigration Managerいう機能を利用する。
サーバにリモートデスクトップで接続し、ブラウザでhttp://localhost:3030を指定すればConfigration managerが表示される。
Web Serverの設定を以下のとおり行う。
・Enable SSL: ON
・Upload Certificate: PFX
ここでC:Tools\win-acme\pfxに保存されたsisense-insight.com.pfxをドロップする。
PFXファイルのアップロードが成功すると、"Upload Successful"と表示され、
・SSL Certificate
・SSL Key
が自動的に埋められる。
尚、HTTPでは8081ポートが使用されているが、SSLでは443ポートを使用するため以下のように入力する。
・Port: 443
以上の設定が完了したら[Save]ボタンをクリックし設定情報の保存を行い、サービスリスタートさせる(SSLを有効にするには関連サービスのリスタートが必要)。
さて、ここで繋いでもHTTPS通信は有効にはならない。
実はIISの設定変更が必要なのだ。
コントロールパネルの管理ツールから「インターネットインフォメーションサービス(IIS)マネージャー」を選択し、左ペインの「サイト」を開いてSisenseWebを選択する。そして右メインの「バインド」をクリックすると、SisenseWebのバインド状態が表示される。
ここでは
・http ポート:14996
・https ポート:443
がバインドされているが、https: 443は削除し、IISを再起動する(再起動は右ペインの「再起動」で行う)。
なんで?と思うのだが、Sisenseのドキュメントを見る限り、ここで443がバインドされいてはいけないらしい。
以上で完了!
ではブラウザからSisenseに接続してみる。
鍵マークが出ているのでHTTPS化できているのが確認できる。ホッ。。。
さらに「管理者」メニューを開き、Gereral Settingsでエイリアスを設定し、[保存]ボタンを押す。
このエイリアスはメールされるときのリンクURLに使われるので必ず設定しておこう。
HTTPS通信が義務付けられる風潮にある中で、Let's Encryptのような無料のSSL証明書を手軽に使えるというのはとてもいいことだ。
僕は以前からLet's Encryptを使ってきたが、Windowsサーバでは90日後の自動更新に失敗し、気づいたらHTTPSが切れていたーなんいうていこともあったが、今現在は自動更新がきちんと行われているようだ。
手軽にWeb Serverを構築する時にLet's Encryptは使えるよね。
ではまた!