「パソコン」カテゴリーアーカイブ

復活!自作パソコンのススメ-つづき(1)

前回(実際に計画したのは昨年末)、詳細の見積もりまでを出して、購入は3月頃と心に決め、それまでは各種資格試験の参考書などでひととおり試験範囲の内容を確認したり、今回の仮想化基盤の検証環境が必要でない資格試験は先に受験しておこうと思っていたのだが、、、、

物欲という煩悩が、新年でお年玉気分の浮かれた心に拍車をかけ、Amazonでポチってしまいました!!

(”ポチる”って言葉、深いね。。。)

しかも、年始早々すぐ来ちゃった!

もう、こうなると「やめられない・とまらない」で、早速パソコン自作作業に着手することに。。。

ちなみに、今回のパソコン自作で使用したパーツ一覧を以下にまとめます。

<元から有ったモノ>

●PCケース:急ファイルサーバのデータ移行で以降先として予定していた自作PC機で使用していた、ATXサイズのマザーボード搭載可能の5インチドライブベイ×8スロットをもつタワー型PCケース。

●ATX電源:合計420W出力。ただし、まだSATA-HDDなどが普及する前の製品なので、それ用の電源コネクタの追加購入が必要。また、いまどきのM/Bの電源コネクタのピン数よりも少ないコネクタ(6ピンのところ4ピンだったり、24ピンが20ピンだったり)で、変換アダプターか自作が必要かと思ってましたが、マザーボードのマニュアルにピンが少ない場合の接続方法が記載されており、アダプタなしでそのまま接続可能とのこと。(しかし、すでに変換ケーブル(¥572@ツクモ)を買ってしまった)

●HDD:SATA-500GB ×1基。WD社製のBlue版(廉価品)。あくまで初期導入時の暫定利用。検証目的の仮想マシンなので、それほどHDDは必要ないが、スナップショットを取ることになるかと思うので、将来的には(80GB×10台=)1TB程度は必要。しかも、冗長化構成は必要と考えると、RAID1+0、RAID0+ホットスペア、RAID5+ホットスペア、もしくはRAID6のいずれかで、RAID6やホットスペア機能は、その機能を有するHBA拡張ボードの購入が必要。ちなみに、今回購入したM/Bの内蔵HDDコントローラには、RAID0、1、1+0も可能なRAID機能も含まれていた!)

<購入したモノ>

●CPU:AMD Ryzen5 2400G ¥18,446(税込)@Amazon

CPUクーラー付きのもので、ヒートシンクとCPU接触面にはあらかじめシリコングリースが塗布されていました。よって、シリコングリースはなくてもよいと思われるが、すでに買ってしまっていたのでCPU側の面にも塗布した。

●シリコングリース:¥363@ヨドバシAKB

オウルテック製の注射器型1.5gのもので、熱伝導率3.8W/mKとのこと。今回選定したCPUがどのくらいの発熱量なのか知らないので、単に値段重視でチョイス。ちなみに、銀やダイヤモンド入りとかでピンキリ(¥1,000以上も)あると無駄に悩んでしまう。。。また、ヘラ付きのものもあるが、固めのプラバン片(今回は、CPUのパッケージに使用されてた透明のプラスチックを使用)で十分代用可能だと思います。

●マザーボード(以下、M/B):ASRock B450 Pro4(ATサイズ)¥9,979@Amazon

PCケースがフルタワー型なので、拡張性のあるATXサイズのもので、今回のCPUと相性がよく、安くて評判がよさそうなものでチョイス。(メモリスロットは4スロットあるので、初期導入分のメモリ2枚にそのまま増量することが可能。また、PCIeも6レーンあり、RAIDコントローラの増設も可能。(グラフィックボードは、GPUがCPUやM/Bに内蔵されているので不要)

●4ピン→SATA-HDD電源コネクタ変換アダプタ:ヨドバシで¥350程度のもの。

●メモリ:Crucial製 デスクトップPC用(288pin)メモリ PC4-19200(DDR4-2400) 4GB W4U2400CM-4G ×2枚1セット ¥8,550@Amazon

Amazonサイトにて、CPUのセット商品となっていたもの。AMDはやはり、メモリなんかの相性も必要みたいなので、それが保障されているようなので迷わず選択。(以前から、そういう声はIntel製品でもあったが、相性で失敗することは、経験上なかった)

●システムディスク:Crucial SSD 120GB BX500 内蔵2.5インチ 7mm (FFPパッケージ) CT120BX500SSD1Z ¥ 3,412@Amazon

SSDもホンと安くなった!安いと製品の品質に不安があるが、メモリと同じメーカでここ最近よく見かけるメーカだったのでチョイス!

●リムーバルHDDマウントキット:OWL-IE5C ¥2,290@ヨドバシAKB

オウルテック製で、2.5インチと3.5インチHDDの両方を1基ずつ装着可能(2台同時利用可能)のお得品!(ファンがないのがちょっと心配かも)

合計¥43,390

以上、初期導入フェーズ(Phase1)、すなわち暫定的に使用することを目的とした構成です。

 

復活!自作パソコンのススメ-はじめに

パソコンの自作といえば、、、、最後に行ったのが、今から10年くらい前に、自宅のファイルサーバを移行するために作ったファイルサーバの自作PCだったと思う。。。。ファイルサーバなので、低スペック(CPUはPentumⅢ)でディスクが複数あればよく、今までの自作PCや中古品の部品を寄せ集めで作ったものでした。(RAIDコントローラやハイタワーのシャーシは購入することになりましたが)

それからは、もっぱらコスパのよい中古PCを購入するようになって、あんな時間とお金を浪費する行為なんて馬鹿馬鹿しいと思って、全然やってなかった。

(たまたま自分が購入した中古PCに、ハズレがほとんどなかったのがよかったのでしょう。また、巷では自作PCがゲーム用を目的としたとんでもないお化けスペックで競い合っていたのも馬鹿馬鹿しくて付いて行けなかった。)

ところが、ここにきて、平成の時代も終わりを迎え、定年への道のりも折り返し地点を過ぎた時期、今の職場で将来的なことを考えると、その後の人生に不安しかなく、時すでに遅しかも知れないが、改めて技術者に戻ろうと決心し、IT業界の新しい製品・機能・技術を勉強しようと、再構築が容易な仮想化基盤による検証環境が欲しくなり、格安で簡単に構築できる仮想化基盤を実現させるPCの購入計画を立てることにしました。

要件としては、

  1. 中古PC・サーバか、無理に冒険しない既知の相性が認められた部品構成での自作PCのいずれかとする。
  2. 初期導入費用は5万円以内で最低限の検証環境が実現できること。
  3. 最低限の検証環境とは、5・6台ほどの仮想マシンが作成でき、このうち3台ぐらいを同時起動可能なスペックとする。
  4. 最終的には前項3のスペックの倍近くまで実現できるまでの拡張性があること。
  5. 検証に使用する仮想マシンは、Windows 2013 Server ×2+Windows10×2+Linux(CentOS7)×1ないし2の構成とする。

とした。

これから、具体的に必要なH/Wスペックをざっくり考えると、、、

まずはCPUは、基盤処理分:1+同時起動の仮想マシンの台数:3=4コアとハイパースレッディング有の4コア8スレッドのCPUとする。

次にMEMは、基盤機能用に1GB+仮想マシンのOSが稼動に十分なMEM容量1GB×同時稼動の仮想マシン台数:3=4GB以上

HDDは、当面使用するに当たって必要な仮想マシンの作成台数が5~6台で、1仮想マシンのOS稼動に必要なシステムディスク容量が80GB、さらに仮想化基盤用の容量も80GBとすると、計480~560GB(仮想マシンのスナップショットを取ることを考えると厳しいかも)

以上から、該当するスペックのPCを探してみると、、、、

中古PC&サーバ市場だと、4コア8スレッドとなるとCore i7の中古PCか、同等のXeonの中古サーバとなる。さらに拡張性を加えると、中古PCはCPUの拡張性が難しい。また、5万円以内でとなると中古サーバも難しく、ラックマウントタイプなどの筐体のタイプや大きさを今の部屋のスペースから考えると選択するには躊躇してしまう。(Dellのラックマウントサーバが捨てられずに残っているし)

一方、自作PCとすると、拡張性と金額からもCorei7は難しく(オークションサイトでも現時点では困難であった)、Xeonプロセッサであればなおのこと。

諦めかけて、興味本位で今時分の自作PCのトレンドを調べていたら、IntelではなくAMDのRyzen CPUを発見!この製品ラインナップはまさにこの計画実現にうってつけ!(AMDはいままで、M/Bをはじめintelアーキテクチャで使えてたパーツが使えないといった問題やソフトウェアでもうごかないものがあるとかの悪いうわさもあったので、あえて手をつけないでいた。)

4コア8スレッド~8コア16スレッドまでのラインナップ(ThreadRipper除く)で、対応するチップセットが共通(=同一M/B)していた。

あとは、価格を調べて、予算に見合うお手ごろなRyzen CPUを探すと、、、、Ryzen5 2400Gが有力候補に。

(ちなみに興味をそそった、最上位のThreadRipperは、32コアとすごいがソケットタイプも違うので別物)

以上で大まかなH/Wスペックが決まったので、この環境で稼動可能な仮想化基盤ミドルウェアを選定してみると、

現在仕事でも使用しているVMware で無償の「VMware hypervisor」だと、メーカサイトにある適合H/W検索ページで、AMD Ryzen CPUは対象に入っていなかった。

LinuxOS上のXenも一瞬考えたが、一度も触ったことも導入したこともなく、すぐに利用可能にするのは困難だろうと判断して却下。

最後に残るのは、Windows OSのHyper-Vだが、こちらも直接触ったことはないがIT業界の展示会で見たりちょっと触ったりしたことはあった。また、Hyper-V自体、勉強目的のひとつでもあるMS資格取得に含まれるので、これを機に勉強しようと考え、Windows OSであればAMD CPUの構成でも問題なく動くだろうから、Hyper-Vを採用することに。

とはいえ、念のためAMD CPUプラットホームでのWindows OSの動作確認情報のページで探して調べてみると、Windows 2012 R2 ServerとそのHyper-V機能、および仮想マシンで使用するWindows 10での対応の有無を確認したところ、Ryzen CPUはいずれも有とのことでウラが取れた。(Win10の場合、1703以降であれば、Ryzenの2xxxシリーズに対応とのこと)

ちなみに、WindowsOSは、MSDNサブスクリプションの特典ライセンスを使用することとする。(仮想マシンの台数から、DataCenter エディションが必要であり、個人での購入は金額的に無理)

以上で主要なベースパーツ(CPU+M/B)が決まったので、Amazonサイトを使って、稼動に必要なパーツ(MEM、HDD,CPUファン)で相性や評判がよいものをチョイスして見積もってみたら。。。(以下、当時の金額)

CPU: AMD Ryzen5 2400X +純正CPUファン付=¥18,446

M/B:ASRock B450 Pro4=¥9,979

MEM:Crucial W4U2400CM-4G(2枚組。計8GB)=¥ 8,550

システムディスク:Crucial SSD 120GB BX500=¥ 3,412

合計=¥40,387

仮想化基盤となるWindowsOSをインストールするシステムディスクにSSDを選んでもこの金額!

ちなみに、仮想マシン領域用ディスク1TBを新規購入(¥6,000程度)しても予算内ちょうどで収まった。

(今回は、500GBの空きHDDが余っていたので、これを使用することにした。あと、いちからPCを自作すると、PCケースや電源も必要であり、さらにはグラフィックボードなどの拡張カードやコネクタやケーブル類などなんだかんだで細かい出費がかさむので、初心者の方はご注意を!)

年末は、予想外の出費が発生したので、購入は消費税増税前(ほんとにするの?)の3月頃を予定。

ラズパイとLinuxパソコンをシリアル接続する方法

ラズパイゼロを使って思ったのですが、、、

ラズパイゼロを使った装置(作品)を完成させて、いざ初回起動開始!のときに、「あれれ?うごかないぞ。。。」ってなった時や、「いままで動いてたのに急に動かなくなったぞ!?」って時に、無線LAN接続が使えればいいのですが、往々にして動かない時は、繋がらないもの。

なので、USBハブ+マウス+キーボード+HDMIモニタを接続して状況を確認・対処するということになるのですが、

それが自宅外とすると、そんなに機材を持ち歩くことは、しんどい!というか無理。

そこで、以前につい衝動買いで秋月で購入したUSB->RS232シリアル変換ケーブル「FTDI TTL-232R-3V3」(USB to TTL Serial Cable(3.3V)-1.8m)を使って、ラズパイとLinux(Debian)端末をシリアル接続する方法を以下に示す。

まずは、変換ケーブルの接続端子のピンアサインは、以下の通り。

黒=GND
 黄=RXD
 橙=TXD
 赤=Vcc(+5V)
 茶=CTS#
 緑=RTS#

この内、接続に必要なものは、黒と黄と橙の3つ。

一方、ラズパイのシリアル接続用のGPIOのピン番号は、
8番(TXD)、10番(RXD)、14番または6番(GND)

私のラズパイは、6番ピンをクーラーファンに使用しているため、14番としました。

6番ピンを使えれば、縦3つで横並びとなるので、3端子のコネクタがあれば、
変換ケーブルに既存の6端子コネクタから、うまい具合に端子を抜き取って※移植すれば、
ハンダ付けや工具や端子を購入する必要もなくなるかと思います。

※端子の抜き取り方法は、千枚通しとかシャーペン(壊れてもよいもの。要領が解れば壊すこともない)を使って、
コネクタ側面の端子金具が見える窓(=金具の出っ張りを引っ掛けるところ)に上記の道具の先を押し付けながら、
ケーブル方向に押し出すと、金属端子ごときれいに抜けるので、3端子のコネクタにそのまま差し込めると思います。

変換ケーブルとGPIOの接続は、以下の通りクロス接続させます。
 <変換ケーブル> |   <GPIO>
 黒(GND)   <=>  14番または6番(GND)
 黄(RXD)   <=>  8番(TXD)
 橙(TXD)   <=>  10番(RXD)

次に、ラズパイの方は、
/boot/cmdline.txtをエディタで開き、下記の箇所を確認の上修正。

 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

修正ないし確認した後、シリアルコンソール接続するため、ラズパイをシャットダウンしておく。

接続するDebian端末において、
変換ケーブルをUSBポートに接続させた後、コンソールプログラムを立ち上げて、以下のコマンドを実行し、変換ケーブルのデバイスファイルを確認する。

 $> dmesg
 [201786.992092] usb 5-1: new full-speed USB device number 2 using uhci_hcd
 [201787.188131] usb 5-1: New USB device found, idVendor=0403, idProduct=6001
 [201787.188142] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 [201787.188150] usb 5-1: Product: TTL232R-3V3
 [201787.188156] usb 5-1: Manufacturer: FTDI
 [201787.188162] usb 5-1: SerialNumber: FTA3BBZ5
 [201788.243386] usbcore: registered new interface driver usbserial
 [201788.243444] usbcore: registered new interface driver usbserial_generic
 [201788.243491] usbserial: USB Serial support registered for generic
 [201788.247032] usbcore: registered new interface driver ftdi_sio
 [201788.247089] usbserial: USB Serial support registered for FTDI USB Serial Device
 [201788.247346] ftdi_sio 5-1:1.0: FTDI USB Serial Device converter detected
 [201788.247458] usb 5-1: Detected FT232RL
 [201788.247465] usb 5-1: Number of endpoints 2
 [201788.247472] usb 5-1: Endpoint 1 MaxPacketSize 64
 [201788.247478] usb 5-1: Endpoint 2 MaxPacketSize 64
 [201788.247484] usb 5-1: Setting MaxPacketSize 64
 [201788.252298] usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB0
 以上の出力結果から、変換ケーブルのデバイスファイルは、”/dev/ttyUSB0”

さらに、Debian端末にて、シリアルポートがサポートされたターミナルプログラム(cuなど)をインストールする。

シリアル通信するデバイスを接続後、シリアル通信プログラムを実行して、シリアル通信が可能かを確認する。

参考)以下、シリアル通信プログラムとして、”cu”を使用して通信を確認する場合
% sudo chmod 666 /dev/ttyUSB0

補足)ラズパイのGPIOのシリアルポートは、”/dev/ttyUSB0”である。

% sudo cu -s 115200 -l /dev/ttyUSB0

と入力する(ボーレートとデバイス名は、接続機器にあわせて指定のこと)。

上記コマンド実行後,/dev/ttyUSB0に接続が成功すると,

Connected.

が表示され、ラズパイ待ち状態になるので、ラズパイの電源をONする。

しばらくすると、ラズバイのOS起動時のコンソール出力が、Debian端末のシリアル通信プログラムのウィンドウに表示される。

 pi@debian:~$ cu -s 115200 -l /dev/ttyUSB0
 Connected.
 [ 0.000000] Booting Linux on physical CPU 0x0
 [ 0.000000] Linux version 4.9.35+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #1014 Fri Jun 30 14:34:49 BST 2017
 [ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
 [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
 [ 0.000000] OF: fdt:Machine model: Raspberry Pi Model B Plus Rev 1.2
 [ 0.000000] cma: Reserved 8 MiB at 0x17400000
 [ 0.000000] Memory policy: Data cache writeback
 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 97440
 [ 0.000000] Kernel command line: bcm2708_fb.fbwidth=1360 bcm2708_fb.fbheight=768 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
 [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
 ・・・・省略・・・・

ログインプロンプトが表示されるので、ラズパイのアカウント情報を入力してログインし、間違いなくシリアル接続したラズパイであることを確認する。

・・・・省略・・・・
 b1/1-1/1-1.5/1-1.5:1.0/0003:093A:2521.0003/input/input2
 [ 4.981346] hid-generic 0003:093A:2521.0003: input,hidraw2: USB HID v1.11 Mouse [USB OPTICAL MOUSE] on usb-20980000.usb-1.5/input0
 [ 5.017712] fuse init (API version 7.26)
 [ 5.061482] i2c /dev entries driver

Raspbian GNU/Linux 8 raspberrypi ttyAMA0

raspberrypi login: pi
 Password:
 Last login: Mon Oct 8 22:27:33 JST 2018 on tty1
 Linux raspberrypi 4.9.35+ #1014 Fri Jun 30 14:34:49 BST 2017 armv6l

The programs included with the Debian GNU/Linux system are free software;
 the exact distribution terms for each program are described in the
 individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 permitted by applicable law.
 pi@raspberrypi:~$

以上

お名前ドットコムのVPSに格安サーバ証明書(KingSSL)を導入する

最近、セキュリティ機能強化の風潮があちこちで広まり、IE(Edge)ばかりでなく、フリーのFirefox,Chromeまでも同様に標準で、オレオレ証明書(=公的に保証されていない私的な証明書)のサイトはかならず警告ないし、最悪表示することすらできなくなってしまった。

これでは不便なので、仕方なく自身のサーバにもちゃんとした証明書を用意しなきゃと泣く泣く導入することにしました。

はじめに

まず、最初に準備というか前提ですが、、、本題のサーバ証明書を実装するオレオレ証明書で稼動するWEBサーバ(すなわち、https://*****でサイトが構成されていること)ありきで、話を進めます。

よって、本誌の内容は、いずれかのサービスでVPSサーバを保有し、そこにHTTPSでアクセスできるWEBサーバを立てたことがある方、もしくはこれからされようとされてい方に限られた内容になります。(このようなWEBサーバの立ち上げ方については、近々個人的に実施する予定なのでそのときに記事をアップしようと思ってます。)

ちなみに、今回対象とするWEBサーバの仕様は、以下のとおりです。

<WEBサーバ仕様>

  1. お名前ドットコムのVPSサービス(KVM)でたてたLinuxサーバ
  2. OSは、CentOS5.9
  3. WEBサーバは、OSバンドルのApache2.xパッケージを実装後アップデートしたものに、同様に実装したOpenSSLでHTTPSのWEBサイト環境を構築。
  4. 固定のグローバルIPアドレス×1個(お名前ドットコムのVPSサーバは、1個付与してくれる)
  5. インターネット上で自サーバのFQDNが使えるようDNSレコードが設定済み(お名前ドットコムの自ドメイン取得サービスを利用)

ここでのポイントはやはり、お名前ドットコムのサービスを使っているということでしょうか。

各サービス機能についての詳細については一長一短あるかと思いますが、通常個人のWEBサーバを維持管理していく上ではそれほど問題にならなかったですし、いずれのサービスも他社と比較しても遜色なく安く、必要なサービスの請求や管理の窓口が一本化されるのは何より便利です。(この良さが、後々の本書の中で効いてきます)

であれば、サーバ証明書の取得サービスもお名前ドットコムのものを使用すればと思うのですが、、、

実際にそのサービスの金額を見たら、他社サービスと比較してもお高いので、そこでこのサービスは以前に安いと評判のKingSSLを利用することにしました。(せめてRapidSSLを担いで欲しかった)

調理開始

以上、必要な材料がそろったので、早速調理に取り掛かります。

まずは、サーバ証明書取得のために、KingSSLのサイトへ。

ここをじっくり調査し、他者と比較検討したわけではないので、ほんとにおすすめできるかは現時点ではなんともいえませんが、

私的には、

  • やはり、安い。しかも早い。支払いはクレジットカードのみになりますが、手続きも完全自動化されており、すぐにサーバ証明書を入手可能
  • 安いだけにサイトはシンプルだけど、日本語でわかりやすい
  • 新規だけでなく更新や再発行の手続きもわかりやすそう

という印象で決めました。(ここは自由に選べますし、将来的にはさらに安い業者もあるかもしれません。ただ、安いだけで決めるのは、今後必要となるサポートや手続きの面で損をすることもあるのでご注意を!)

本紙では、年間900円の1年モノにしました。(もちろん、複数年モノにすればそれだけ割引がありますが、ためしに使ってみるということで1年モノにしました)

さっそく、サイトから申し込み手続きのボタンをクリックして手続き開始へ!

第一関門:CSRの生成と入力

手続きの一発目から、いきなりCSRの入力欄が出現!

まずは手続きの第一関門。オレオレ証明書でやってきたので、CSR生成についてはピンと来なくて、どうすればいいんだけっけ?ってググろうと思ったけど、同サイト内のサポートページで、しっかり手順が書いてありましたので、その手順そのままに実施することにしてみました。

ちなみに、CSRは、サイトにも書かれていたが、”Certificate Signing Request”で、要は証明書を発行する際の本人確認のための情報みたいなもの。具体的には、サーバ内で生成されたサーバ所在情報+公開鍵データ。

手順としては、サーバ構成が”Apache 2.x + mod_ssl + OpenSSL”なので、その手順ページを参照。

サーバ内での操作としては・・・、

まず、現在WEBサーバが立ち上がっている環境の確認。サーバ立ち上げ時に現在使用されているオレオレ証明書を作成した際に生成された、秘密鍵や証明書+公開鍵の保管場所を/etc/httpd/conf.d/ssl.confファイル内で下記項目を確認し、

  • SSLCertificateFile(サーバ証明書のパス)
  • SSLCertificateKeyFile(秘密鍵のパス)

そこに記載されたパスにある、現在使用中の各ファイルをかならずmvコマンドなどで退避させておくこと。さもないと、以降の作業時に誤って消失させてしまうと、同じものを復元させることができませんので、現状のWEBサービスを停止・起動させることができなくなってしまいます。

(最悪、新たな証明書を用意するまで停止状態にするか、もう一度オレオレ証明書を再作成して立ち上げなおせばいいだけの話ですが、今後正規の証明書で運用していく場合は、この場合のリスクについても考慮のこと)

一発目の操作は、まず先のssl.confに記載のSSLCertificateKeyFileパス、すなわち秘密鍵が格納されているパスで以下のコマンドをrootユーザで実行します。

# openssl genrsa -des3 -out ./<生成する秘密鍵ファイル名>.key 2048

ここで、<生成する秘密鍵ファイル名>には、ssl.confの”ServerName”に記述されたファイル名(WEBサーバのFQDNを入れたり、さらに生成日も入れたりするといいでしょう)にして、実行します。

この結果、下記のように表示されるので、秘密鍵に割り当てたいパスフレーズを入力します。(これは、後の手順で入力が必要となるので、間違えず忘れないように!)

[root@myportal ~]# openssl genrsa -des3 -out ./myportal.yshome.net.key 2048 <Retキー>
Generating RSA private key, 2048 bit long modulus
......................................................+++
.......................+++
e is 65537 (0x10001)
Enter pass phrase for ./myportal.yshome.net.key: <パスフレーズを入力>
Verifying - Enter pass phrase for ./myportal.yshome.net.key:<同上を入力>
[root@myportal ~]# ls -ltr
この結果、カレントディレクトリに、下記のファイルが生成される。
-rw-r--r-- 1 root root  1751 12月 29 11:07 myportal.yshome.net.key

なお、WEBサーバのFQDNはこの時点でかならず、これがお名前ドットコムのドメインサービスで取得されてDNSレコードに定義されて利用可能であること。

また、このとき入力したパスワードは、後の手順でも使用し続けるので、ちゃんと記録しておきましょう。(忘れてしまったら、手順というか手続きを位置からやり直しとなってしまいます)

この結果、カレントディレクトリに”<生成する秘密鍵ファイル名>.key”というファイル名で、 秘密鍵(2048ビット)が生成されます。

次に、証明書が格納されているパスで、以下のコマンドをrootユーザで実行します。

# openssl req -new -key <前手順で生成した秘密鍵ファイル> -out ./<生成するCSRファイル名>.csr

実行すると、当該WEBサーバの所在情報の入力が一問一答形式で開始されますので、KingSSLサイトのサポートページを参照して適切な値を入力していってください。

[root@myportal ~]# openssl req -new -key ./myportal.yshome.net.key -out ./myportal.yshome.net.csr
Enter pass phrase for ./myportal.yshome.net.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:○○-ku
Organization Name (eg, company) [My Company Ltd]:My Home Lab.
Organizational Unit Name (eg, section) []:<入力不要とのこと>
Common Name (eg, your name or your server's hostname) []:myportal.yshome.net
Email Address []:<入力不要とのこと>
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:<先のパスフレーズを入力>
An optional company name []:<同上>
[root@myportal ~]# ls -ltr
-rw-r--r-- 1 root root  1751 12月 29 11:07 myportal.yshome.net.key

なお、ここで入力した値は、最終的に得られたサーバ証明書の情報に組み込まれ、ユーザなどからその情報が証明書情報の表示操作で見えてしまうので、誤字やいい加減な入力は恥ずかしい黒歴史となりますので慎重に!

最後に、前手順の秘密鍵生成時に入力したパスワードを入力する必要があります。

この結果、<生成するCSRファイル名>.csr がカレントディレクトリに生成されますので、これをcatやviコマンドで内容を表示させてください。

[root@myportal ~]# cat myportal.yshome.net.csr
-----BEGIN CERTIFICATE REQUEST-----
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
-----END CERTIFICATE REQUEST-----
[root@myportal ~]#

上記のように表示されたファイル内容において、”—–BEGIN ・・・・”の行から、”—–END ・・・・”の行まで、一文字の抜けがない様、また余計な文字が含まれないよう十分注意して、手続き画面の一発目に出現したCSRの入力欄にコピペします。

あとは、次の画面で、入力したCSRのデータから、サーバの所在情報の確認や、支払いに使用するクレジットカードの入力がありますので、各情報を入力していってください。

第二関門:承認メール送り先の用意

っで、この手続きの中で一番問題となる、第二関門の承認メールのメールアドレスの指定ですが、、、

これが厄介なことに、業者のシステムで、登録したFQDN情報から自動生成されたメールアドレスの選択式となっており、自由に入力することができないということです!

たとえば、メールアカウント名が、”hostmaster”,”postmaster”,”admin”となっており、メールアドレスのドメインも、WEBサーバのドメイン名しかありません。。。

(サポートページのFAQにも、回答として「コモンネームに指定のドメインのメールサーバにエイリアスでもいいので・・・」って、スラって書いてあるけど、面倒なのでそもそも自ドメインのメールサーバ立ててないんですけど!)

ここで助かったのが、お名前ドットコムの無料オプション機能の”お名前.comメール転送Plusサービス”です!!

これを知らないときは、1GBプラン¥42円/月のメールサービスを使用やむなしと思っていましたが、”お名前.comメール転送Plusサービス”もあるということを知り、使えるかどうか試しに申し込んでみたところ、思ったとおりの設定ができました!

この機能を有効に設定することで、

自身の管理するドメインのDNSレコードに、MXレコード(お名前ドットコムのメール転送機能用メールサーバ)が登録され、指定したメールアドレスから転送したい任意の既存メールアドレスに転送されるというというものです。おかげでメールサーバの運用コストを増やすことなく、手続きが可能となりました。

具体的には、

KingSSLで選択した、”postmaster@<domainname>”のメールアドレスに対して、

KingSSLの申込者欄の連絡先メールアドレスに記載の私個人利用のメールアドレスを設定するだけ!(この機能自体には、さらに自動応答やフィルタ機能なども備えている)

なお、このメールアドレスは、承認メールが送られるだけで使用するもので、最終的な証明書は、別途申込者情報の入力欄で入力した管理者連絡用メールアドレスに送られてきます。(むしろ、こちらのほうを当該サーバ側に送って欲しい。コピペって文字コードや改行コードなどで意外と危ういですし。)

この後は、上記のとおり、承認メールが転送先のメールアドレスに届くので、その本文中のリンクをクリックして、承認WEB画面内の承認ボタンをクリックして、しばらく待つと、証明書のメールが申込者の連絡先メールアドレスに送付されてきます。

証明書といっても、ファイルではなく、メールの本文内に何十行にもわたる意味不明な文字列が書いてあるので、これをWEBサーバの証明書ファイルにコピペしていくことになります。

たとえば、# cat > <新サーバ証明書ファイル名>.crt

を実行後、標準入力待ちになるので、一気にペーストして流し込む。(流し込んだ後は、<RET>キーを押下し、そのまま不要な文字を入力せずに速やかに「CTRL」+「C」キー)

なお、本証明書には、中間証明書も必要になっているので、こちらも証明書のディレクトリに新たにファイルを用意してコピペすること。(このファイルは、それとわかるようにkingcacert.cerとか例そのままでもいいかと)

次に、いままでオレオレ証明書では使用することはなかった、中間証明書の指定を先のssl.conf内の”SSLCertificateChainFile”で追加してやる必要があります。

正規のサーバ証明書で立ち上げ!

念のため、各ファイルの内容やパスに誤りがないことを確認の上、

WEBサービスの停止(service httpd stop)&起動(service httpd start)を実行。すると、起動時にパスワードを要求してきますので、最初の秘密鍵生成時に入力したパスワードを入力します。正しければ、何事もなく新しい正規のサーバ証明書でWEBサーバが立ち上がります!

[root@myportal certs]# service httpd stop
・・・省略・・・
[root@myportal certs]# service httpd start
httpd を起動中: Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server myportal.yshome.net:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.
                                                           [  OK  ]
[root@myportal certs]#

補足)なお、再起動実施において、”NG”となった場合の原因の一例として、証明書コードのコピペミスがよくある。
この場合、/var/log/httpd/ssl_error_logに、下記のエラーログが見られる。
[error] Failed to configure CA certificate chain!
このメッセージ自体の意味は、”証明書の初めから終わりまでが正しくない”という内容のものです。
今一度、コピペした証明書ファイルの内容を確認してみましょう。
十中八九、”—–BEGIN CERTIFICATE—–”から”—–END CERTIFICATE—–”までが正しく張り付けられていないはずです。
(コピーの範囲指定ミスで開始または終了の”-“が足りないとか、(コピペ後、<RET>を入れ忘れて)最後の”—–END CERTIFICATE—–”自体が欠落しているなど)

なお、新しいサーバ証明書での動作確認としては、IEの”In Privateブラウズ”でWEBブラウザを立ち上げて、同WEBサーバにアクセスしてみてください!いままでアドレスバー赤色に染まっていたのが、何事もなく水色の鍵アイコンに変わり、そのアイコンをクリックして証明書情報を確認すると、見覚えのある内容が確認できます。

以上の手続きが、時間も問わずなんと半日でできてしまう!というお手軽さ。

本件の目的を適当に急ぎでやっつけちゃおうってことだけであればおすすめしません。(ほんとに必要なのか?ほんとにこの業者でいいのか?をちゃんと考えてから行動を起こしましょう)

が、この運用コストを極力抑えて、本来のWEBサーバのコンテンツ管理の運用を行いたいというのであれば、おすすめします!

追記、肝心なこと忘れてました!

http://でアクセスしに来たら、https://にリダイレクトさせなきゃ。

おわりに・・・

以上で、個人のWEBサーバを、一般的にまともなWEBサーバに近づけることができました。

そもそもサーバ証明書の役割ですが、簡単に言うと、

  1. 通信を暗号化して、通信の盗聴リスクを回避する。
  2. サーバを外部の機関が唯一無二のサーバであることを保証してもらうことで、なりすましや改ざんといったリスクを回避する。

といったところでしょうか。

ひと昔では、サーバ証明書と自ドメインの取得と維持管理だけでも年間3万円以上出費しなければならず、自サーバを持ちたい貧乏人にとっては、大変きついものでした。(なので、そういった人はできるだけ出費を抑えようと自力で自己防衛の努力をしてきたのですが。。。)

これを、現実に置き換えて考えると、、、

盗聴やなりすまし(偽称)は、治安のよい日本ではよっぽどの人でない限り、被害にあうことはないものでしたが、今となってはストーカーや詐欺といった犯罪が広まり、普通の人でもその被害者になりつつあります。しかし、実際の生活環境でこれらに対する対策はしてないのに、自身のサーバにだけお金をかけて対策を講じるのも、変な話ですが、インターネットの世界では、当人だけの被害ならまだしも、被害者でありながら知らずに加害者になってしまっているケースがあるので、エチケットとしてこういった対策は施していかなければならないということでしょうか。。。(今という時代やインターネットの世界とは、まったく世知辛いものです)

LinuxPCで秋月のUSB-シリアル変換ケーブルを使う

秋月電子通商の「USB-シリアル変換ケーブル (スケルトン)」(M-00720)は、サポートOSとしてWindowsクライアントOSしか記載されていない。

個人ではもっぱらLinuxPCを利用しているため、このPC環境で利用できないか試してみた。

本書で試してみたLinuxPCの環境は下記のとおりである。

  • PC本体:Lenovo Thinkpad X61s(USBポートのみでシリアルポートはない)
  • OS:Debian-7u6(Wheezy)

 

1.とりあえず接続してみた

OSデフォルト(別のところでカスタマイズはしているが)状態のままで、当該ケーブルをつなげてみて、OSが認識するかどうかを確認してみた。

接続後、以下のコマンドを実行してみた。

①dmesg

[1051828.140176] usb 5-2: New USB device found, idVendor=067b, idProduct=2303
[1051828.140185] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[1051828.140192] usb 5-2: Product: USB-Serial Controller
[1051828.140198] usb 5-2: Manufacturer: Prolific Technology Inc.
[1051828.142283] pl2303 5-2:1.0: pl2303 converter detected
[1051828.154334] usb 5-2: pl2303 converter now attached to ttyUSB0

上記のような出力が表示されました。(システム起動後に当該ケーブルを接続したのち、上記コマンドを実行すると、その最後にUSB関連と思われるログが出現するので、見つけやすいと思われます)

上記ログから、”USB-Serial Controller”というキーワードが確認できるので、この部分が接続したUSBシリアル変換ケーブルだという事の判断がつきます。

そして、この部分から、このUSBシリアル変換ケーブルに割り当てられたデバイスファイルが、”/dev/ttyUSB0”であるという事を把握すること。

②lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]
Bus 005 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

上記出力のうち、”Bus 005 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port”から、

USBバス番号⑤番に、”Prolific Technology, Inc. PL2303 Serial Port”のシリアルポート装置が接続されているということが裏付けられます。

こちらのコマンドは、あくまでdmesgコマンドの出力から推察した当該デバイス情報のウラを取るための補足みたいなものです。

以上より、本環境(というよりも、ほとんどのLinuxディストリビューションと、当該変換ケーブルで使用されているICが”PL2303”であれば)においては、特に外部からデバイスモジュールをインストールなどの手間をかけずとも、そのままプラグアンドプレイで認識することができる。

ただし、認識はしたが、実際にこの接続を利用する場合、シリアル通信コンソールアプリケーションプログラムが必要になる。(Windowsであれば、「Tera Term」などに当たるもの。)

 

2.シリアル通信コンソールアプリのインストール

Linuxでは、CLIコマンドプログラムとして、”CU”と”minicom”がある。これをインストールしないことには、この接続を介してのシリアル接続通信が実現できない。

これらのプログラムは、Debianの場合は、ディストリビューションの標準パッケージとして存在するので、以下のコマンドを実行して、インストールすることができた。

# apt-get install cu

# apt-get install minicom

3.シリアル通信コンソールアプリの実行

<共通>

シリアル通信ポートを使用するにあたって、そのデバイスファイル”/dev/ttyUSB0”に対して、読み込み・書き込み権限を追加する必要がある。

pi@yspc912:/proc$ ls -l /dev/ttyUSB0
crw-rw—T 1 root dialout 188, 0  4月  3 00:08 /dev/ttyUSB0
pi@yspc912:/proc$ sudo chmod 666 /dev/ttyUSB0
pi@yspc912:/proc$ ls -l /dev/ttyUSB0
crw-rw-rw- 1 root dialout 188, 0  4月  3 00:08 /dev/ttyUSB0

参考)上記を実施せずに、コンソールアプリを実行しようとすると、下記のようなエラーが出力されて使用できない。

以下は、”cu”で実行した場合のエラーメッセージ

cu: open (/dev/ttyUSB0): Permission denied
cu: /dev/ttyUSB0: Line in use

以下に、それぞれのシリアル通信コンソールアプリの実行操作を記す。

<cuの場合>

% sudo cu -s 9600 -l /dev/ttyUSB0
と入力する(ボーレートとデバイス名は、接続機器にあわせて指定のこと)。
上記コマンド実行後,通信に成功すると,
Connected.
と返してくる。これで通信確立。
もし,
Line in use
とか返してきた場合,前述の<共通>に示した手順が実施されていない可能性があるので,もう一度チェックすること。
なお、プログラム終了(通信切断)の際は,
~.(チルダとドットを入力して、<Enter>)
と入力すると,数秒後に切断される。

 

 

WordPressによるHP制作奮闘記

ここでは、このサイトを実現する手段として採用したWordpressを使用して、苦労したことを書き綴っております。


基盤の用意

本サイトの基盤は、お名前.comのVPSサービスを利用しております。

なので、Wordpressを自力でインストールしようと思ってましたが、そこで力を使い果たして頓挫しては、本末転倒なので、ここは潔くサービスとして提供されていたWordpressカスタマイズされたサーバセットアップを利用させていただき、楽に基盤を用意しちゃいました。

ちなみに、本サイトの基盤構成は以下のとおりです。

  • OS=CentOS6.5(64bit)
  • WWWサービス=nginx1.6.1
  • Webアプリケーションエンジン=PHP5.5.16-1
  • DB=MySQL5.5.39-36.0

VPSなので、H/Wスペックは省略します。

 


本サイト構築の目的

本サイトの目的は、今まで個人でインターネット上にWikiサイトや会員限定のポータルサイト(現時点では構築中)を構築して利用してますが、一般公開の個人のホームページがなかった(あるにはあるが、旧来のホームページサービスなので、メンテナンスが不便で更新することが億劫になり衰退)ので、これをフリーでメジャーなWordpressにて実現しようと思い立ちました。

WordPressだと、個人のブログサイトを構築することでよく利用されているようですが、私自身はあまりブログ(もとから日記など)は好きではないので、従来の個人ホームページ的な作りにしたいと思い、Wordpressによる製作に着手しました。(今日に至る。。。)