PHPのfopenやfile_get_contentsでSSL接続が出来たりできなかったりしたメモ 
2024/06/23 Sun.
とあるレンタルサーバーのPHPで
fopen('https://~', 'r');
とやったときに接続できるURL、できないURLがあったので「なんでかなあ」と悩んだのですが、レンタルサーバーのPHPが「SNI」をサポートしてないのが原因でした。
どうしようもないです。はい。
PHPのSNIについては
SSL コンテキストオプション
を参照ください。
SNIを簡単に説明すると、
SSL通信はHTTPヘッダーが暗号化されているので一つのIPで複数ドメイン・ホストを動かしているサーバーでは、どのドメイン・ホストに接続したいのか分かりません。なので名前ベースのバーチャルホストを使っているサーバーはSSL通信ができないのですがそれをできるようにするのがSNIの仕組み。
サーバーとクライアントの両方が対応している必要があります。一般的にクライアントはブラウザになりますが、今回の私の場合はPHPがクライアントとなるわけです。
fopen('https://~', 'r');
とやったときに接続できるURL、できないURLがあったので「なんでかなあ」と悩んだのですが、レンタルサーバーのPHPが「SNI」をサポートしてないのが原因でした。
どうしようもないです。はい。
PHPのSNIについては
SSL コンテキストオプション
を参照ください。
SNIを簡単に説明すると、
SSL通信はHTTPヘッダーが暗号化されているので一つのIPで複数ドメイン・ホストを動かしているサーバーでは、どのドメイン・ホストに接続したいのか分かりません。なので名前ベースのバーチャルホストを使っているサーバーはSSL通信ができないのですがそれをできるようにするのがSNIの仕組み。
サーバーとクライアントの両方が対応している必要があります。一般的にクライアントはブラウザになりますが、今回の私の場合はPHPがクライアントとなるわけです。
Puttyでサーバー接続が切れるときと切れない時がある解決策 
2024/04/12 Fri.
自宅サーバーにPuttyで接続するのですが、自宅内からLAN経由で接続するとパソコン操作を放置したときにタイムアウトでPutty接続が切断されることがある。
しかし、出先からインターネット経由で接続しているときは切断されない。
●使っているソフトはPutty
●使っているパソコンは同じ
●接続先は同じ自宅サーバー
違いは・・・インターネット回線かLAN回線の違いか・・・。
しかし、出先からインターネット経由で接続しているときは切断されない。
●使っているソフトはPutty
●使っているパソコンは同じ
●接続先は同じ自宅サーバー
違いは・・・インターネット回線かLAN回線の違いか・・・。
PHP file_get_contents 関数の SSL operation failed エラー 
2024/02/15 Thu.
今まで動いていたPHPが
file_get_contents(): SSL operation failed
こういうエラーを吐いて動かなくなったとき、それはPHPを動かしているサーバーのルート証明書が古くなったのが原因です。なので更新する必要があります。
ルート証明書は
●Linuxの場合
ca-certificates.crt
ca-bundle.crt
というファイル名のようです。ディストリビューションによってファイル名が違うようです。
Linuxはたくさん情報がありますのでそれぞれ検索してください。
●FreeBSDの場合
ca-root-nss.crt
というファイルになります。
FreeBSDをインストールしただけでは存在しません。OSインストール後pkgコマンドでインストールします。
インストール場所は
/usr/local/share/certs
です。
ここではFreeBSDのルート証明書のアップデート方法を備忘録しておきます。
まずバージョンをチェックしてみます。
# pkg version
ca-root-nss-***<
のように「<」マークがついているとそれは最新バージョンがあるという意味です。
# pkg upgrade ca-root-nss
で更新できます。
file_get_contents(): SSL operation failed
こういうエラーを吐いて動かなくなったとき、それはPHPを動かしているサーバーのルート証明書が古くなったのが原因です。なので更新する必要があります。
ルート証明書は
●Linuxの場合
ca-certificates.crt
ca-bundle.crt
というファイル名のようです。ディストリビューションによってファイル名が違うようです。
Linuxはたくさん情報がありますのでそれぞれ検索してください。
●FreeBSDの場合
ca-root-nss.crt
というファイルになります。
FreeBSDをインストールしただけでは存在しません。OSインストール後pkgコマンドでインストールします。
インストール場所は
/usr/local/share/certs
です。
ここではFreeBSDのルート証明書のアップデート方法を備忘録しておきます。
まずバージョンをチェックしてみます。
# pkg version
ca-root-nss-***<
のように「<」マークがついているとそれは最新バージョンがあるという意味です。
# pkg upgrade ca-root-nss
で更新できます。
category: サーバー
アマゾンで怪しい中華LANケーブルを買ってみた 
2024/02/08 Thu.
アマゾンにずらりと並ぶいわゆる「令和最新版」系中華パーツ。今まで手を出さないようにしてました。
だけど今回、一時的に長い平型のLANケーブルが必要になり、なるべく安く済ませたいなあと思って買ってしまいました。
lovicool?
だけど今回、一時的に長い平型のLANケーブルが必要になり、なるべく安く済ませたいなあと思って買ってしまいました。
lovicool?
iperf3で帯域測定!使い方とインターネット品質の調べ方 
2024/02/06 Tue.
インターネット回線の通信品質の調べ方
USEN - インターネット回線スピードテスト
Netflix - Fast.com
ただし、これらはあくまでもインターネット回線の通信速度になりますので、プロバイダーの混み具合や地域の回線使用状況で数値がコロコロと変化します。
プロバイダーの乗り換え判断には便利ですが、自宅の通信環境の品質測定には使えません。
自宅の環境を調べたいときは「iperf」という便利なツールがあります。
FreeBSDセキュリティーパッチの適用やアップデートのコマンド 
2023/12/19 Tue.
詳細は以下参照
第16章 FreeBSD のアップデートとアップグレード
セキュリティーパッチの適用について抜粋すると
# freebsd-update fetch
# freebsd-update install
をrootにて実行。
その後、
# freebsd-version -k
# uname -r
の2つのコマンドを実行して表示されるバージョン内容が異なっている場合はカーネルが更新されているので再起動
# reboot
が必要です。
マイナーバージョンアップ、メジャーバージョンアップもこのコマンドで実行できます。
テストマシンでマイナーバージョンアップ試してみましたが、時間はかかるが実に簡単に更新できます。やり方を抜粋すると、
第16章 FreeBSD のアップデートとアップグレード
セキュリティーパッチの適用について抜粋すると
# freebsd-update fetch
# freebsd-update install
をrootにて実行。
その後、
# freebsd-version -k
# uname -r
の2つのコマンドを実行して表示されるバージョン内容が異なっている場合はカーネルが更新されているので再起動
# reboot
が必要です。
マイナーバージョンアップ、メジャーバージョンアップもこのコマンドで実行できます。
テストマシンでマイナーバージョンアップ試してみましたが、時間はかかるが実に簡単に更新できます。やり方を抜粋すると、
category: サーバー
Whoisコマンドの使い方 
2023/01/23 Mon.
近年Whois情報が簡単に調べられなくなっている。
これは「Whois Privacy」のようなWhois情報を隠すサービスで見られないということではなく、ドメイン管理会社などが提供しているWhois検索機能を使ってもそもそもWhois情報が見つからない。または、表示されてもそのドメインはWhoisを公開しているのにドメイン管理会社の情報が表示される。という状態。
ちょっと困ったことがあったので調べてみたら、UNIX系OSにはwhoisコマンドというものがある。
使い方は
$ whois 調べたいドメイン名
利用しているレンタルサーバーで実行したところコマンドがありませんと言われました。そこで、自前のFreeBSDサーバーで実行したら動きました。
OSによって標準で入っている場合と入ってない場合があるようです。
これは「Whois Privacy」のようなWhois情報を隠すサービスで見られないということではなく、ドメイン管理会社などが提供しているWhois検索機能を使ってもそもそもWhois情報が見つからない。または、表示されてもそのドメインはWhoisを公開しているのにドメイン管理会社の情報が表示される。という状態。
ちょっと困ったことがあったので調べてみたら、UNIX系OSにはwhoisコマンドというものがある。
使い方は
$ whois 調べたいドメイン名
利用しているレンタルサーバーで実行したところコマンドがありませんと言われました。そこで、自前のFreeBSDサーバーで実行したら動きました。
OSによって標準で入っている場合と入ってない場合があるようです。
category: サーバー
FreeBSDにapcupsdをインストール、設定した手順を備忘録 
2022/01/27 Thu.
オムロンからAPCの無停電電源装置(UPS)BR400S-JPに買い替えたのでフリーの連携ソフト「apcupsd」を使ってみることにしました。
PORTSから簡単にインストールできるので手順を残すほどのことでもないけどサーバー関係はまごまごしたくないので備忘録として残しておく。
なお、ここでのUPSの使い方はUPS一つにサーバー一つをUSBケーブルで接続するというシンプルな使い方です。
PORTSから簡単にインストールできるので手順を残すほどのことでもないけどサーバー関係はまごまごしたくないので備忘録として残しておく。
なお、ここでのUPSの使い方はUPS一つにサーバー一つをUSBケーブルで接続するというシンプルな使い方です。