カテゴリー
2023年 Linux SNI (Server Name Indication) Windows クラウド コンピューター 証明書

Server Name Indication (SNI) とは


にほんブログ村

まず、ウェブサーバーなどで使われているバーチャルホストという技術が、どのようなものなのかを知っておく必要があります。

通常はWebサーバやメールサーバを運用するのにドメインの数以上のサーバコンピュータが必要となる。バーチャルホストを利用すると1つのサーバコンピュータで複数のドメインを運用することができ、サーバコンピュータの数を減らし運用のコストを下げることができる。また、後述する名前ベースバーチャルホストの場合はIPアドレスも節約することができる。 また、ドメインの追加も容易で、小規模Webサイトの運営や安価なレンタルサーバサービスなどでの利用が盛んである。

ウィキペディア

SSL/TLS では「同じサーバーは 1つの SSL サーバ証明書しか使えない」のが基本です。

ただ、このままだと不便な場合もあります。例えばレンタルサーバサービスをしているとしましょう。同じサーバを複数のユーザが利用し、更にユーザーごとに異なるドメインを利用するという使い方ができなければ、レンタルサーバーのサービスは成り立ちません。

このために出てきたのが、バーチャルホストです。

バーチャルホストの種類

今時のウェブサーバーでは、1台で複数の ウェブサービスを提供することが当たり前になっています。この技術をバーチャルホストと呼びます。

バーチャルホストには 2種類があります。

  • IP ベース
  • 名前ベース

IP アドレスが複数必要のない名前ベースのバーチャルホストの方が主流ですが、実際は、両方を混在させて使うケースもあります。

名前ベースのバーチャルホストの設定例

IP アドレスは同じで、複数のウェブサイト(ドメイン)を提供するのが特徴です。

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/kkint1
ServerName www.kkinternational.com

# Other directives here

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/kkint2
ServerName www.kkinternational.work

# Other directives here</VirtualHost>

IP ベースのバーチャルホストの設定例

ウェブサイト(ドメイン)毎に、異なる IP アドレスを使うのが特徴です。

Listen 80

<VirtualHost 172.30.30.100>
DocumentRoot /www/kkint1
ServerName www.kkinternational.com

</VirtualHost>

<VirtualHost 172.30.30.200>
DocumentRoot /www/kkint2
ServerName www.kkinternational.work

</VirtualHost>

なぜ SNI が必要なのか

このバーチャルホスト(特に名前ベースの方)が使われ始めたのが理由です。

名前ベースのバーチャルホストには、

  1. 同じ IP アドレスで、複数のウェブサービス(ドメイン)を提供する
  2. それらのウェブサービスは HTTPS を使っていて、サーバー証明書で暗号化されている(現在は HTTPS がほぼ必須)

という特徴があります。

上記 1の特徴から、バーチャルホストを使うウェブサーバーは、「家」よりも「アパートの建物」に似ていると言えます。アパートは、複数の部屋に分かれています。これらの部屋が、ウェブサービスでありドメインです。

次に上記 2の特徴です。この「HTTPS でサーバー証明書を使っている」というところがポイントです。基本的な SSL/TLS の仕様では、サーバー証明書は、同じ IP アドレスにつき 1ドメインしか運用できません。

上記1と2の特徴を考えると、複数のドメイン名をホストするため、IP アドレスだけでは、ユーザーが到達しようとしているドメインを示すのに十分ではありません。

なぜなら、間違った SSL 証明書を表示する可能性があり、HTTPS 接続ができなかったり、または終了されたりしてしまうというケースが発生する訳です。

じゃあ SNI があると?

Server Name Indication(SNI)は、この問題を解決するために作られました。

SNI は、HTTPS で使用される TLS プロトコルの拡張機能として提供されています。

TLS/SSL ハンドシェークに含まれていて、クライアント PC が、到達しようとしている ウェブサイトの正しい SSL 証明書を確認することができるようにします。

Server Name Indication(SNI、サーバー ネーム インディケーション、サーバ名表示)は、SSL/TLSの拡張仕様の一つである。SSLハンドシェイク時にクライアントがアクセスしたいホスト名を伝えることで、サーバ側がグローバルIPごとではなくホスト名によって異なる証明書を使い分けることを可能にする。

ウィキペディア

SNI を利用すると、クライアント PC は SSL/TLS ハンドシェイクの際に「これから通信したいサーバのドメイン名」をサーバに通知します。ウェブサーバーは「どのドメインに対応するサーバ証明書を利用すべきか」を、判断することができるようになります。

これにより、接続したいウェブサービスに必要なサーバー証明書が入手できるという訳です。

SNI をサポートしてないウェブブラウザー

SNI はクライアント側(ブラウザー)で、この機能をサポートしていないといけない訳ですが、古いブラウザーですと SNI をサポートしていません。

  • Windows XP 以前の全ブラウザ
  • IE 6 以前
  • いわゆる「ガラケー」のブラウザ

まあ、こんな古い環境でインターネットのブラウジングをしている人もいないと思いますが。

SNI をサポートしているブラウザーの一覧はこちら

SNI をサポートしているウェブサーバー

  • Apache 2.2.12 以降 + mod_ssl もしくは mod_gnutls
  • Apache Traffic Server(英語版) 3.2.0 以降
  • Cherokee(英語版) (コンパイル時 TLS サポートを有効にした場合)
  • lighttpd 1.4.24 以降(それ以前の1.4.xはパッチ)
  • Nginx と OpenSSL
  • F5 ネットワークス Local Traffic Manager 11.1 およびそれ以降
  • Hiawtha(英語版) 8.6 またはそれ以降
  • IBM HTTP Server 9.0 およびそれ以降
  • LiteSpeed 4.1 およびそれ以降
  • Pound 2.6 以降
  • Apache Tomcat (Java 7 およびそれ以降)
  • Microsoft IIS 8
  • PageKite tunneling reverse proxy
  • Citrix NetScaler 9.3 以降
  • Radware Alteon ADC (AlteonOS 28.1 以降)

関連するブログ:

最近の人気ブログ TOP 10:

最近の記事:

カテゴリー
2022年 Windows ガジェット コンピューター バックアップ 自動化

BanBackup でバックアップの自動化


にほんブログ村

今回やりたいのは、こんな感じです。

パソコンのデスクトップに保存されているデータ全てを、NAS にバックアップでコピーします。

今回は、バックアップソフトとして、BunBackup を使用しています。

バックアップ元のフォルダとして、デスクトップを指定していますが、マイドキュメントでもなんでも指定できます。

バックアップ先のフォルダーとして NAS を指定していますが、外付けハードディスクでも USB メモリーでも指定可能です。

手動バックアップの設定

BanBackup を起動します。

「+」ボタンをクリックして、新規ジョブを追加します。

「バックアップ設定」のウィンドウが表示されるので、以下のように設定します。

  • タイトル:バックアップジョブの名前
  • バックアップ元フォルダ:バックアップしたい対象のフォルダを指定
  • バックアップ先フォルダ:バックアップ先のフォルダを指定

「OK」をクリックして次に進みます。

先ほど作成したバックアップジョブの名前と内容が表示されます。

この内容を保存しておきます。

上部メニューの「ファイル」から「名前を付けて保存」を選択します。

バクアップ定義ファイル(「.lbk」の拡張子のファイル)を任意の場所に保存しておきます。これがあれば、次からその内容でバックアップを行えます。

手動バックアップをやってみましょう。

上部メニューの「バックアップ」から「バックアップ開始」を選択します。

先ほど設定した内容で、バックアップジョブが実行されます。

バックアップの自動化

先ほどの手動バックアップを自動化させたいと思いました。

でも、BunBackup のマニュアルを見ても、いまいち内容が分かりません。以下の感じで記載があります。

AUTOって何?タスクスケジューラで具体的にどうやって設定するの?って感じです。そこで手順を調べてみました。

Windows の検索ボックスから「task」と入力して、タスクスケジューラを検索します。

タスクスケジューラをクリックして起動します。

タスクスケジューラが起動して表示されます。

左側のメニューの「タスクスケジューラーライブラリ」をクリックします。

右側の「操作」メニューに表示される「基本タスクの作成」をクリックします。

基本タスクの作成ウィザードが表示されます。

以下の内容で入力します。

  • 名前:今作成しようとしているタスクの名前
  • 説明:作成しようとしているタスクの説明(オプション)

「次へ」をクリックします。

「タスクトリガー」の設定画面が表示されます。

今回は毎日バックアップを使用と思いますので、「毎日」を選択します。

「次へ」をクリックします。

「毎日」の設定画面が表示されます。

以下のように設定します。

  • 開始:タスクを実行したい日時を指定
  • 間隔:毎日なら「1」、2日に一回なら「2」を指定

「次へ」をクリックします。

「操作」の設定画面が表示されます。

ここでは、タスクの起動時に実行したいプログラムを指定します。

今回実行したいのは BunBackup のプログラムですので、「プログラムの開始」を選択します。

「次へ」をクリックします。

「プログラムの開始」の設定画面が表示されます。

以下のように設定します。

  • プログラム/スクリプト:BunBackup の実行ファイルをフルパスで指定します。

例えば、「/BACKUP:”C:\My Documents\BunBackup\Test.lbk”」という感じです。

ポイントは、バックアップ定義ファイルのフルパスを「”」で囲うことです。これをしないとエラーになって BunBackup が起動してくれません。

次のポイントが「引数」です。

BunBackup のマニュアルにも記載があるように、引数では、いろんなアクションを指定できるみたいですが、以下の二つがよく使用するものになるでしょう。

  • BACKUP
  • AUTO

BACKUP の方が、手動でバックアップしている内容をそのまま自動で実行するタイプです。バックアップの状況や結果を画面に表示します。

AUTO の方が、バックアップの状況や結果を画面には表示させないでバックアップを実行するタイプです。

今回は画面に見える形で実行させたいので、BACKUP を使ってみます。

引数に、以下のように指定します。手動バックアップの際にバックアップ定義ファイル(「.lbk」ファイル)を保存しました。そのファイルのフルパスを指定します。

例えば「/BACKUP:”C:\My Documents\BunBackup\Test.lbk”」という感じです。

「完了」をクリックして、タスクを作成します。

タスクスケジューラのタスク一覧に、作成したタスクの名前が表示されます。

タスクスケジューラからの実行確認

タスクを作成したのは良いけど、ちゃんと動くのかを見ておきたいです。そんな時は、実行したいタスクをクリックし、右側のメニューの中の「実行」をクリックします。

作成したタスクの内容を実行してくれます。

バックアップジョブが動き出しましたね。

右側のメニューの「実行中のすべてのタスクの表示」をクリックしてみます。

「実行中のすべてのタスク」のウィンドウが表示されます。

ここに作成したタスクが表示されていれば、タスクが実行されていることが確認できます。

おもしろかったら、フォローしてください!

関連する記事:

最近の記事:

カテゴリー
Apple Azure Microsoft Raspberry Pi SSTP VPN Windows クラウド コンピューター 技術一般

Mac OS で SSTP VPN を使う


にほんブログ村

SoftEter VPN Serverでは、 VPN Azure Cloud を使用することができます。

これを使うことにより、ファイヤーウォール配下に存在するSoftether VPN Server に対しての外部からの VPN 接続で、Inbound NAT や Port Forwarding といった設定を追加する必要がなくなります。

VPN Azure Cloud ですが、名前の通り、Microsoft Azure を利用します。そして、マイクロソフトということで、Secure Socket Tunneling Protocol (SSTP) というプロトコルを使用して接続することになります。

これがちょっと厄介です。マイクロソフト社の提供している OSである Windowsであれば、SSTP を使った VPN は標準で設定できるのですが、Apple 社が提供している OS である Mac OS ではそうは行きません。SSTP は標準では使えません。

ですが、Mac OS で、さらに GUI で簡単に SSTP 接続ができるアプリを見つけました。その名は「iSSTP」 です。

iSSTP

ここからダウンロードができます。

今回実現したいのは、以下の構成です。

私の自宅には Raspberry Pi 4で、Softether VPN Server を動かしています。これに対して、外出先から SSTP VPN で接続して、自宅内の NAS やサーバーにアクセスします。

Raspberry Pi で Softether VPN Server を動かす方法と設定は、こちらの記事が参考になります。

Softether の設定

基本的な設定は完了している前提での説明となります。

基本設定に関しては、上記の記事が参考になります。

Softether 管理コンソールにログインします。

VPN Azure」をクリックします。

「VPN Azure の設定」の中の「VPN Azure を有効にする」を選択して有効にします。

「現在の VPN Azure ホスト名」のところに表示されている「xxxxx.vpnazure.net」が、SSTP VPN の接続先となる FQDN になります。

「OK」をクリックして設定を適用します。

iSSTP の設定

まず「New」ボタンを押して、接続先の設定を行います。

  • Name: 任意の名前(何でも良いです。分かりやすい名前をつ付けましょう)
  • Server Address: VPN サーバの FQDN を記載(VPN Azure の場合は “xxx.vpnazure.net” になります)
  • Username: VPN 接続のユーザ名(SoftEther VPN で設定した場合は VPN 接続のために用意したユーザー)
  • Password: 上記ユーザーのパスワード

Server Address は、ここに表示されている値(xxxxx.vpnazure.net)です。

Password は、作成したユーザーの中で設定しているパスワード認証の値です。

iSSTP の設定画面で、忘れずに「Save」を押しておきます。これを忘れると、再起動すると設定が消えてしまいます。

SSTP VPN 接続

接続したい設定をクリックします。

画面右下の「Connect」をクリックします。

SSTP VPN 接続が開始されます。

接続が完了すると、VPN 接続先の DHCP の IPアドレスが割り当てられて表示されます。

SSTP VPN 接続切断

VPN 接続を切りたい時は、画面右下の「Disconnect」をクリックします。

ステータスが「Not Connected」になれば、VPN 接続は切断されています。

おもしろかったら、フォローしてください!

関連する記事:

最近の記事:

カテゴリー
2021年 Linux Riverbed SaaS Windows キャッシュ クラウド コンピューター 技術一般 自動化 証明書

モバイル PC で SaaS の快適アクセス

Riverbed TechnologyのClient Accelerator(旧SteelHead Mobile) という製品を触ってみました。

なぜ、この製品を触ってみたかというと、バージョン 6.2.2 にSSL Agent (SSL Simplification)という機能が搭載され、最適化動作にサーバ証明書の管理が不要となったためです。これは便利!と思い、早速、評価してみました。

SteelHead Appliance とは

業界をリードする WAN 最適化装置です。WAN越し、インターネット越しのアプリケーションアクセスのパフォーマンスを向上させます。WAN やインターネットに流れるデータを、特別なキャッシュの技術を使ってデータ削減します。

リバーベッドテクノロジー社初心者向け技術トレーニング資料より抜粋

Client Acceleratorとは

SteelHead アプライアンスをソフトウェアにした製品です。Windows や Mac のラップトップにインストールして使えます。

リバーベッドテクノロジー社初心者向け技術トレーニング資料より抜粋

なぜ、SSL Agentが良いのか?

インターネットの通信の 85%以上が SSL 通信(HTTPS)であると言われています。つまり、暗号化されているのです。

こういった暗号化された通信を制御する製品では、通信を一旦終端し、暗号化を解く必要があります。

この暗号化には、サーバ証明書を使用しています。

企業内にホスティングされている Web サーバーであれば、そのサーバーの管理者に依頼すれば、サーバー証明書を入手することは可能です。

ですが、これがインターネット上のサーバーだったら、どうでしょうか。誰が管理者か分からないし、管理者が仮に分かっても、サーバ証明書は通常得られません。

インターネット上サーバーの証明書は、管理者に依頼しなくても、サーバ証明書の内容は入手することは可能です。ですが、いつそれらの証明書の内容が変更になるかは分からないという点は変わりません。その内容に合わせて代理証明書を作っても、元の証明書の内容が変更になるたびに代理証明書の方も変更する必要があり、管理が大変です。

WAN 最適化装置も、クライアント PC と Web サーバーの間の通信に入り込んで動作しますので、暗号化された通信は一度復号化する必要があります。そこに、サーバ証明書を使っています。

企業内の Web サーバーであれば、管理者に依頼してサーバー証明書を入手し、その証明書を WAN 最適化装置にもインストールしれば良いので対応できます。

しかし、これが Microsoft 365(Office 365)へのアクセスだったらどうでしょうか。マイクロソフトからサーバー証明書はもらえません。

復号化ができませんので、最適化動作(特に問題になるのはデータ削減)ができなくなります。

仮に、先ほどの方法で内容を把握し、自分で代理証明書を作成することは可能ですが、その内容が変更になったら、証明書がないのと同じです。マイクロソフトは、M365 の証明書をかなり頻繁に変更しています。

SSL Agent の登場

こういった問題を解決できるのが、SSL Agent です。この機能を使えば、サーバ証明書のインストールは不要になります。どうやったら証明書が入手できるのかとか、いつ変更になるのかを気にする必要はもうありません。

動作確認の構成

テスト構成はこんな感じです。

Client Accelerator と SteelHead の間に WAN シミュレーターを入れ、ここで疑似インターネットを作っています。WAN シミュレーターで、帯域幅や遅延、パケットロスが設定できます。今回のテストでは、100ミリ秒の遅延を入れています。

WAN シミュレーターには、WANemを使っています。

そして、アクセス先は、実際の M365 を使っています。私が個人で契約して使っているものですので、東京リージョンになります。M365 へのアクセスは、実インターネットの通信です。

データ削減の効果

OneDrive に保存してある 68MB のパワーポイントのドキュメントをダウンロードしてみました。

以下のグラフの一番上のコネクションが、OneDrive からのダウンロードのコネクションです。転送データの内、41% のデータが重複排除され削減されています。通信の宛先ポート番号がTCP/443(HTTPS)になってますね。サーバ証明書なしで、データ削減ができています。

キャッシュの無い一回目のデータ転送でも半分弱のデータが削減されてます。すごい効果ですね。40秒ほどで、ダウンロードが完了しています。

今度は、二回目の転送です。以下のグラフの上から2番目のコネクションが、OneDrive からのダウンロードのコネクションです。

同じパワーポイントのファイルを再度転送しています。91% のデータ削減です。もうほとんど、疑似インターネット上にはデータが流れてません。流れるデータの量が減れば、とうぜん体感のスピードだって上がりますよね。数秒でダウンロードは完了しています。

同じファイルなんだからデータが減って当たり前、という考え方もあります。

ですが、Riverbed 社のキャッシュは、ファイルキャッシュではなく、バイトキャッシュを使っています。

約100バイトの大きさにデータを細切れにし、その中の「0」と「1」の配列が同じであれば、1つにするという方式で、データ削減を行っています。

リバーベッドテクノロジー社初心者向け技術トレーニング資料より抜粋

つまり、この「0」 と「1」の配列が同じであれば良いだけで、パワーポイントで得たキャッシュで、エクセルでも PDF でも、データ削減が出来ちゃうという訳です。すごい技術を持ってます。

もう一つのテスト構成

Web プロキシーサーバーというものは、企業でよく使われています。これがあった場合でも、この WAN 最適化の仕組みは動くのだろうか?という疑問が湧きましたので、追加で動作も見てみました。

Web プロキシーサーバーには、 Unveil Technology 社のOpen Squidbox を使ってます。Linux でお馴染みの Squid なんですが、仮想アプライアンスみたいになってて、手軽に使えます。GUI の画面からグラフを見られて便利です。

Web プロキシー経由での、一回目のデータダウンロードです。以下のグラフの上から2番目のコネクションです。今度は、宛先ポート番号がTCP/3128(Squid)になってますね。

一回目のキャッシュなしのダウンロードで、44%のデータ削減が実現しています。

今度は二回目のダウンロードです。以下のグラフの下から4番目のコネクションです。94%のデータ削減が実現しています。Web プロキシーを経由しても、データ削減の効果は得られていますし、変わらない結果が得られました。

評価のまとめ

  • キャッシュを使ってのデータ削減と差分データ転送の効果は高い。
  • 運用すればするほどキャッシュは溜まるので、一回目のデータ転送時のデータ削減効果は高くなることが期待できる。
  • SaaS アプリケーションだけでなく、Yahoo や Facebook など、インターネット上にある Web サーバーは何でも最適化対象にできる。
  • ただし、ある程度の転送データ量があるコネクション(OneDrive や SharePoint のアクセス)を対象にしないと、投資効果が合わない。
  • ダイレクトアクセスでも、Web プロキシー経由のアクセスでも、通信を最適化することができる。

私のオーストラリアの某お客様が、シンガポールのデータセンターにある Web プロキシーを経由して Microsoft 365にアクセスしているが遅いといっていますので、早速、この SSL Agent を提案してみたいと思います!

SSL Agent の設定

最後に、設定内容もメモとして記載しておきます。

SteelHead アプライアンス側設定

SSL Main Setting のところで、SSL Optimization を有効にします。

SSL Advanced Settings のところで、TLS Blade を有効にします。

Client Accelerator Controller の自己証明書をコピーし、SteelHead アプライアンスのMobile Trust のリストに追加します。

これは、Client Accelerator ソフトウェアとSteelHead アプライアンス間(最適化通信のコネクション)を暗号化するためです。

Client Accelerator Controller 側のポリシーの設定

Port Label で、「Web」というラベルを作成し、TCP/80, 443, 3128を対象としています。Port Label とは、複数のポート番号をグループ化して名前で管理できるようにするものです。

In-Path ルールで、Webでまとめたポート番号向けの通信を全て最適化対象とするというルールを設定します。

今回使用しているルールの内容です。

Peering 証明書のところに、SteelHeadアプライアンスの自己証明書をコピーして追加します。Client Accelerator ソフトウェアとSteelHeadアプライアンス間の最適化通信を暗号化するためです。

SSL 設定のところで、SSL Optimization を有効にします。

その設定ページの下の方にあるTLS Optimization を有効にします。

Client Accelerator の評価版は、こちらから申請して試すことが可能です。


にほんブログ村

関連する記事:

最近の記事:

カテゴリー
2021年 Microsoft Raspberry Pi Windows おすすめ販売 ガジェット コンピューター 家電 技術一般

Raspberry Pi 4 で Windows 10 を動かす


にほんブログ村

初めて購入した Raspberry Pi 4 の 8GBモデル。Linux でサーバーを動かしたいなと思って買ったのですが、やっぱりWindows も動かしてみたいなと思ったので、ちょっといろいろ調べてみました。その時のメモ書きです。

必要なもの

Raspberry Pi 4 本体

Windows を動かすなら、やはり、4BG 以上のモデルがいいでしょう。

4GBモデル

8GBモデル

初めて Raspberry Pi 4 を購入する人は、セットになったものを購入すると便利です。必要なものが全て (モニター以外) 付いてます。

電源アダプター

動かしっぱなしの人はいのですが、使い終わったら電源を消したい人は、このスィッチの付いたタイプがおすすめす。電源を入れる時に、ケーブルの抜き差しが不要になります。

Raspberry Pi 4 ケース

Raspberry Pi は、使っているとすぐに熱くなります。以前、Linux でサーバーを動かしてみたのですが、ちょっと使っていたら、すぐにシステム温度が 90 度くらいまで上がりました。

ファンが付いているカバーが一番おすすめです。私も最初はこれを購入しました。やっぱり、音は気になりますね。そばにいかなければ分からない程度ですけど。

なので、2台目からは、ファンなしのケースを購入しましたファンなしなら、これがおすすめです。現在、Raspberry Pi 4 は 4台所有していますが、3台にこれを使用しています。

触ると本体は多少熱くなってますが、システム温度はしっかり下げられています。

Raspberry Pi 用モニター

忘れてはいけないのがモニターです。Raspberry Piには、モニターはありません。基盤剥き出しの本体のみです。

OSインストール直後しか使用せず、あとはRDPとかVNCなどで接続しますが、最初は必要ですので忘れないように購入しましょう。私はこれを使ってます。

MicroSD カード

Linux でサーバーを動かすなら、16GB でも 32GB でも十分なのですが、Windows の場合は、64GB 以上のサイズがおすすめです。C ドライブの空き容量が不足すると、システムが起動しなくなります。

あと、MicroSD のサイズが大きいほど、バックアップの時間が長くなります。これを考えると、32GB から 64GB くらいがちょうど良いと思います。システム以外のディスクは、外部の NAS を使えば良いですので。

MicroSD リーダー・ライター

Raspberry Pi では、OS を MicroSD に書き込んで、そこから起動させて使います。OS の書き込みの際に必要となりますので、持っていない場合は購入しておきましょう。

事前準備

ARM64 の Windows のインストーラーをダウンロードします。

ここからダウンロードできます。

通常は、Lαtest Public Release Build がいいです。Archtectures では、ARM64 を選択します。

インストーラーをダウンロードします。

言語を選択します。

Pro か Home を選択します。私は Remote Desktop が使いたかったので、Pro を選択しました。

ダウンロードします。

ダウンロードできたファイルを開くと、Windows のダウンロードプログラム「uup_download_windows.cmd」がありますので、ダブルクリックします。

Windows のダウンロードが始まります。

ダウンロードにかかる時間は、ご使用のインターネットの状態次第で変わります。

ダウンドードが完了しました。

このダウンロードした ISO イメージを使って、Raspberry Pi にインストールしていきます。

MicroSD への Windows 10 のインストール

MicroSD にイメージを書き込むのには、Raspberry Imager を使うのが便利です。これが圧倒的に速いです。

Raspberry Imager を起動します。

言語を選択します。

デバイスの選択で、MicroSD を選択します。

32GB でも動きますが、すぐにディスクがいっぱいになってしまいます。64GB 以上のサイズがおすすめです。

イメージの選択で、先ほどダウンロードしたWindows 10 の ISO イメージを指定します。

「Use the latest package available on the server」にチェックを入れます。

2回、ライセンス承諾を聞かれるので OK していきます。

「Use the latest firmware available on the server」にチェックを入れます。

ここの設定は触らず、次へで進めます。

設定内容を確認します。

問題なければ、「インストール」でインストールを開始します。

インストールが始まります。気長に待ちましょう。

ご使用のマシンスペックにも寄りますが、私の場合、40分くらいで完了しました。

インストールの完了です。

MicroSD を取り出します。

Raspberry Pi で Windows 10 を起動

Windows 10 を書き込んだ MicroSD を、Raspberry Pi に差し込みます。

電源を入れて起動します。

初回の起動だけ、やけに時間がかかります。私の場合、30分くらいかかりました。気長に待ちましょう。

二回目以降の起動は、すぐに起動してきますので、安心してください。

Raspberry Pi 4 には、メモリーが 2GB、4GB、8GB のモデルがあります。

4GB または 8GB のモデルを使っている方は、ここが注意点です。

ARM64 版の Windows 10 は、デフォルトでは、3GB しかメモリーを認識しません。

BIOS の「Advanced Configuration」の中に、「Limit RAM to 3 GB」という設定がありますので、これを Disable にすることで、そのリミットを解除できます。これにより、Raspberry Pi の 4GB とか 8GB のメモリーをフルに使用できます。

[Device Manager] > [Raspberry Pi Configuration] > [Advanced Configuration]

ですが、この設定、注意が必要です。

私の場合、しばらく使っていたら、Windows 10 が突然起動しなくなりました。何故なのか、いろいろ調べているうちに、「ひょっとしたらこのメモリーの設定かも?」と思って戻したら、正常に起動するようになりました。

それ以来、リミットはかけたままです。この設定は、注意して使った方がいいです。

Windows 10 を初期設定していきます。通常行う設定と同じです。

Windows 10 が正常に起動しました。

インストールできるアプリケーション

Raspberry Pi 4 で動かす Windows 10 ですが、通常の PC 版のように、何でもアプリが動く訳ではないみたいです。まだまだこれから開発が必要みたいです。

私が試してインストールできたアプリケーションは、以下のものです。

  • Microsoft Office 365
  • Google Chrome
  • Firefox
  • TeamViewer
  • CCleaner
  • ExPing
  • Serva32
  • SoftPerfect Network Scanner
  • SoftEther VPN Manager (インストールはできるけど、起動でエラーになる)
  • TWSNMP
  • Nagios Agent(NSCP)

これからいろいろ使って、調べていきたいと思います。

ただ、いろいろと制限があるみたいなので、ARM版 Windows 10 をクライアント PC として使うには、まだまだと考えた方が良さそうです。私は SNMP Polling の監視やシスログサーバーとして使ってます。

気になる点

その1 CPUの負荷が高くなる

Google Chrome を使うと、CPU の負荷が高くなる傾向があるように見えます。Chrome を動かすと、こんな感じです。

Chrome を停止すると、こんな感じです。

Firefox だと、若干、CPU 負荷は低めみたいです。

その2 リモート接続時の画面解像度

TeamViewer で接続すると、画面の解像度がやけに低いです。

TeamViewer の接続時の解像度の設定をいろいろと触ってみたのですけど、全然ダメです。

RDP だと、いい感じの解像度で接続されます。どうしてでしょうね。これは調査中です。

その3 ディスクサイズ

32GB の MicroSD でも、Windows 10 はインストールできますし、普通に動作します。ですが、ディスクの空き容量が、すぐにいっぱいになってしまうところが注意点です。

私は最初、32GB の MicroSD で Windows を使っていました。ですが、ある日突然、Windows 10 が起動しなくなりました。いろいろ調べていたら、C ドライブの空き容量がほとんどなくなっていました。

64GB に変更したところ、正常に起動できました。それを考えると、64GB 以上のサイズを使用するこことをお勧めします。

MicroSD のバックアップもしたいと思います。その際に、サイズが大きければ大きいほど、バックアップに時間がかかります。使用環境でも変わりますが、目安は、16GB で 20分くらいかかります。

ですので、個人的には 64GB くらいがちょうど良いかなと思ってます。ファイルを保存したい時は NAS をマウントししてしまえば良いです。

私は、Windows 10 をサーバーとして使っています。シスログサーバーも動かしているので、家の中の全てのネットワーク機器のログは、ここに飛ばしているのですが、ログの保存先は、ネットワークドライブにしてます。

関連する記事:

最近の記事: