IISにおけるSSL証明書更新の半自動化

仕事で、Windows ServerのIIS(Internet Information Service)上で稼働しているWebサービスを運用している。
当然HTTPSの為、SSL証明書を定期的に更新しなければならない。
更新はIISマネージャ上で簡単に実行できるのだが、運用しているサーバーが多くなってくると、煩わしい上に作業ミスや漏れが発生しやすくなる。

そこで、証明書差し変えbatを作成した。
内容自体は簡単なのだけど、思った以上にネット上で情報が見つからなかったので、ここにメモする。

【前提】
・pfxファイルは既に持っており、batと同じディレクトリに格納されている。
・証明書ストアは[Webホスティング]にする。
・古い証明書がバインドされているサイトはすべて新しい証明書にバインドしなおす。

IISマネージャ上でできることは全てappcmdでも実行できると思っていたのだけど、どうもそうでもないらしい。


技術の勉強、全然していないなぁ。
30歳になり、脳が固まっているのを感じる。

LINE Notifyでメッセージを送信する方法(C#)

LINEで特定のグループに通知を飛ばす、いわゆるbotのようなやつは、実は簡単に実装できる。

  1. まず、下記ページからLINEにログインする。
    https://notify-bot.line.me/ja/
  2. マイページに移動すると「トークンを発行する」というボタンがあるので、これをクリックする。
  3. 通知したいグループを選択し、トークンを発行する。
  4. トークンを用いて、HTTPリクエストを送る。詳細な仕様はAPIドキュメント参照。
    https://notify-bot.line.me/doc/ja/

例えば、C#では以下のようにしてメッセージ通知ができる。


結婚してから、お金の管理がクレジットカードだと若干面倒になってきた。
割と本気でLINE Payに移行しようか検討中。

デュエルリンクスデッキメモ

懲りずにまたデッキメモを貼る。
以前主力だったデーモンデッキは鳴りを潜め、環境デッキに魂を売っているが、それでも魔導、バンパイアだけは使わないのだ。コアキメイルは脳筋だから使ってよい。

コアキメイル

今月(2019/1)の デュエルキング達成デッキ。 ホントアホみたいに強い。あえて注意点をあげるのであれば、特別な事情がない限り「コアキメイルの金剛核」を使った後はすぐに除外をしてコアキメイルの自壊を防ぐのを怠らないこと。後回しにすると「死者への供物」や「狡猾な落とし穴」でコアキメイルを破壊され痛い目を見る。

カラクリ

デュエルキング達成後に構築したデッキなので真価は未知数だが、デッキが凄くよく回る。「死者への供物」とのシナジーが強い。ドローできないというデメリットが大きくて今まで評価していなかったのだけど、このデッキなら「カラクリ解体新書」でドローができるのであまりデメリットにならない。バック干渉が弱いかもだけど、ガン伏せには「幻層の守護者アルマデス」を使って対応していく。なお、カラクリの強制攻撃効果は結構忘れやすいので使い始めはプレミ多発していた。まぁ今もしてるけど。

TRAP-U.A

先月(2018/12)のデュエルキング達成デッキ。今まで「トリッキー」で手札から「‘U.A ペナルティ」を墓地に落として「U.A スタジアム」をサーチするという動きをしていたが、どう考えても「バージェストマ・マーレラ」でデッキから落とす方が確実だし、墓地からモンスターとして復活させることができるので非常に優秀だったのでトラップ軸に変更した。「波紋のバリア ウェーブフォース」以外は墓地から復活、そのまま除外が可能なので、トラップこんだけ入れていても「狡猾な落とし穴」が発動させやすいのも優秀なポイント。今月もしばらくこれで戦っていたが、コアキメイルには勝ち筋が薄く、乗り換えに至った。

レベルアップデーモン

「アドバンスドロー」型のデーモンデッキだが、スキルを「レベル上昇」にして、アドバンスドローを行いやすくした。それでもでデーモンパーツを集めるのに時間がかかるので、「クリボー」
「波紋のバリア ウェーブフォース」 を積んで耐えられるようにしている。ただ、やっぱり初動が遅いのは否めず、ランク戦ではあまり使えない。

サイバーダークエッジ

「局所的ハリケーン」を発動した後、「サーバーダークエッジ」に「比翼レンリン」を装備し、攻撃力を1500アップさせ、2回ダイレクトアタックするだけの簡単な作業。「暗黒界の取引」で「比翼レンリン」を少しでも墓地に送りやすいようにしている。


WordPressバージョンアップしたらエディタの仕様がめっちゃ変わっていて驚いた。前のほうが使いやすかった気がするけど、慣れれば都なのだろう。多分。


あ、TwitterやFacebookで報告したけど、婚約しました。感謝の気持ちを忘れず、これからもマイワイフに愛想つかされないようにしなくては。

タスクスケジューラの結果通知

Windows Serverで日時作業や定期的なメンテナンスを行う場合、タスクスケジューラで実行することが多い。
しかし、そのタスクが実は失敗していたが、それに気付かずずっと運用していた・・・というシナリオは思ったより多い(自分の周りでは)。
本来的にはそのタスクにエラー通知なりを入れておくのが筋なのだが、ロジックが込み入っていてすぐにはエラー通知が実装できない場合がある。

暫定処理だが、そんな場合はタスクの結果を定期的に確認するタスクを仕込むと楽である。
例えば、AM6時には完了しているはずのタスク「TaskName」であれば、以下のTaskCheck.ps1をAM6時に実行するように設定すればよい。
なお、このサーバーから利用できるSMTPサーバがあることを前提としている。

繰り返しだが、暫定対応策である。
本来は本ロジックにエラー通知を仕込むべきだと思う。
せめてタスク失敗時のイベントをトリガーにしてエラー通知をさせたいのだが、意外とその方法が見つからず原始的な方法にしている。
一応、想定した時間(例ではAM6時)に終わらなかった時のことを考えて、実行中の場合は別の通知を行うようにほのかな工夫はしている。

ただ、ごちゃごちゃして専門家でないと分からないルーチンより、このほうがなんちゃって管理者でも理解しやすく、意外と受け入れられやすかったりする・・・


Mac miniを買った。
ついでもトラックパットとキーボードも新調し、20万円なり。
節約しなきゃ・・・なのだが、どうも散財癖が身についている。
ちょっとしたことで東京へ往復12,000円弱かけて行っちゃうし。

だからって訳では全くないけど、いい加減結婚したい。

【デュエルリンクス】デッキメモ

Twitter見ると分かる通り、かなり遊戯王デュエルリンクスにハマっている。
基本テンプレ構成が強いのは言うまでも無いが、
そんな中でもちょっと少数派で、多少工夫が入っているデッキを組んで頑張っているのでメモしてみる。
勝率はレジェンド帯での感覚値なのでご了承ください。

・サイバー流デーモン

今、一番メインで使っているデッキ。
基本ギミックはデーモンデッキで、とにかく墓地肥やし第一。
そして「デーモンの呼び声+悪魔族」or「デーモンの雄叫び+ヘル・エンプレス・デーモン」で墓地の上級デーモンを蘇生。
いずれのコンボもそろわないパターンが少なくないが、その場合はスキル「サイバー奥義」でモンスターを2体以上出し、
上級悪魔族をアドバンス召喚して事故回避する。
ただし、今のワンキル環境ではスキル発動前にライフ0にされてしまうので、ダメージ調整用に「クリボー」を3積みしている。
別に「クリボール」でもいいと思う。俺が持っていないだけです。。
「ライトロード・ライラ」は増やしてもいいかもしれないが、
「ジェネシス・デーモン」や「デーモンの呼び声」のコストに出来ず、デッキが回らなくなる可能性を考えてピン刺しにしている。
あとそもそも俺が1枚しか持っていないのも大きな理由。
なお、墓地肥やししまくるので考えなしに使うとデッキ切れを起こす。
かといって肥やさないわけにもいかない状況が多く、デッキは気持ち多めになっている。これでも問題なく回る。

勝率は体感6割ぐらいあると思う。
このデッキのみ使用でレジェンド3まで上がれ、後1勝でデュエルキングにまでなったが、
そこから空牙団にボコられ一気にレジェンド1まで落ちた。。。
今またこのデッキでレジェンド2に昇格して健闘中。

・バージェストマデッキ

特に工夫はないバージェストマデッキ。
ドンパ等のモンスター効果が効かないところや、「下剋上の首飾り」の効果を知らない人が結構いてそういう勝ち方が正直多い。
湿地草原はもう1枚あった方がいいと思う。俺が持っていないだけです。。
勝率は正直4割ぐらい・・・

・バージェストマHERO

上記のデッキの対戦がいつも長くなってしまうので、
決定力を求めた結果、「V・HERO ウィッチレイド」と「マスク・チェンジ」でのワンキルを考えた。
正直、コンセプトは悪くないと思っているのだが、
「V・HERO ウィッチレイド」と「M・HERO 闇鬼」を2枚しかもっていないからか、それ以前に構築が悪いからなのか、
勝率は1割ぐらい・・・
バージェストマで延命しながらキーカードをそろえるスタンスなので、3積みじゃないとやっぱり駄目なのかもしれない。

あとはシーステルス空牙団と芝刈り魔導書をちょくちょく使っています。


いつもと相当毛色の違う記事になってしまった。
一体誰が望んでいるのかとは思うが、まぁ自分用メモってことで。

ARR(IISのリバースプロキシ機能)でアップロード容量制限に引っかかった場合の対処法

会社のネットワーク関連の一部を管理しているが、
そのうちの一つにARR(Application Request Routing)が含まれている。
ARRの内容は下記リンクが分かり易いが、要はリバースプロキシだ。
参考: https://codezine.jp/article/detail/7018

特に問題なく運用していたのだが、最近あるシステムに大きい容量のデータを送ると404エラーになることが分かった。
サーバーログから調査しようとしたが、どうもサーバーに通信自体が来ていないように見える。
そこで、経由しているARRのログを確認したところ、こちらで404エラーになっていることが分かった。

ARRサーバーのほうのIISログを確認したところ、ステータスコードは404でサブコードは13であることが分かった。
そこで検索すると以下の情報がヒットした。
インターネット インフォメーション サービス 7.0 を実行しているサーバー上でホストされている Web サイトにアクセスするときにエラー メッセージ:「HTTP エラー 404.13-CONTENT_LENGTH_TOO_LARGE]
ここの解決策を行い、問題は解決した。
なお、こちらの環境ではrequestFilteringノードは見つからなかったが、手動で追加して特に問題なく反映された。


画像管理システムでも作ろうかしら。
昔作ったのはXMLでタグ情報持たせていたからパフォーマンス面から実質使えない状態だったけど、
DBにバイナリ入れて管理させるとどうだろう。
やっぱりDBとバイナリじゃそれはそれでパフォーマンス悪いかなぁ。

Windowsのパフォーマンスモニターの設定エクスポート、インポート

Windows Serverを運用しているのであれば、トラブル時の調査に備え、
パフォーマンスモニターを設定しておくことがほぼ必須手順になる。
複数台を運用している場合、どのサーバーにも共通のモニターを設定することになる。

なので、取得するカウンター設定を丸ごとコピーしたくなる。
結論から言うと簡単にできるのだが、意外とネット上に情報が無かったのでメモする。

【エクスポート】
1. パフォーマンスモニターを開く。
2. エクスポートしたいデータコレクタセットを右クリックし、[テンプレートの保存]をクリックする。
3. 任意の場所に保存する。

【インポート】
1. 【エクスポート】で保存したファイルを任意の場所に設置する。
2. パフォーマンスモニターを開き、データコレクタセットを新規作成する。
3. [テンプレートから作成する]を選択し、[次へ]をクリックする。
4. [参照]をクリックし、先程設置したファイルを選択する。
5. 以下、ダイアログに従って設定する。

まぁなんも難しいところもないんだけど、
インポート時には「新規作成」から行うのが意外と盲点になってた。


Mac Miniが欲しい。新しいのでないかなぁ。

会社のお荷物になりつつあり結構鬱気味。
運動して気を晴らそう。

SharePoint Foundation 2013の「構成データベースの設定」で信頼できないドメインからのログインと言われる場合の対処法

先日、SharePoint Foundation 2013を構成している際に今までに見たことがないトラブルが発生した。
最終的に解決できたものの、理屈が不明のため、ここにとりあえずでメモしておく。


環境

  • ドメインサーバ
  • DBサーバ(SQL Server 2014)
  • APサーバ(SharePoint Foundation 2013)

現象

  • 「構成データベースの設定」で情報を入力し、「次へ」をクリックしても「サービスが実行中かご確認ください」というエラーメッセージが表示される
  • DBサーバのイベントログには「このログインは信頼されていないドメインからのログインなので、Windows 認証では使用できません」と表示されている
  • 勿論ログインしようとしているユーザー(設定画面で指定したユーザー)はSQL Severと同ドメインの、権限も有るアカウントである
  • FWを切っても状況は改善しない

参考:「構成データベースの設定」画面


解決方法

正しいドメインのユーザーなのに信頼できないドメインと言われ途方にくれていたが、
まさかの部分を修正して解決した。

APサーバーのhostsファイルにドメインサーバ、DBサーバ、APサーバの名前解決情報が入っていた。
ドメインに所属して同じDNSを用いている以上不要なのでこのhostsファイルの上記名前解決情報を削除したところ、問題が解決した。

理屈は全くわからないのだが、名前解決情報があるために一部ドメインを経由せず認証を行うような挙動になったのかな、と推測している。
再現性を取る時間もないので、とりあえず経験した事実だけ書き記しておこう。


そろそろ転職を考えなくちゃいけないかなぁ。
日々勉強、常に時代に追いつき、追い越さなくてはならない「技術者」には僕は成れない。
自分に見切りを付けてもいい時期かもしれないな。

基本情報技術者試験体験記

去年、会社で突然、基本情報技術者試験の取得が義務付けられた。

2016年10月、先輩の「こんなの何も対策しなくていい」という言葉を完全に鵜呑みにし、
本当に全く何も対策せず受験した結果、余裕で落ちた。

2017年4月、勉強しようと参考書を買ったものの、業務が忙しくなり結局一回も過去問すら見ないまま受験し、
午前59.5点という芸術的な点数を記録して落ちた。

正直、これ、業務的にも使うのかな?別にどうでもよくね?という感覚だったのだが、上司からかなりキツく叱られ、「受からないと来年の年俸は上げない」とまで言われたので、形振り構わず受かりに走ることにした。
結果として、2017年10月、やや裏道を使いながらも合格したので、そのときのことを徒然と書いていく。
正直、本職のSEやPG、IT関係者なら受かって当然の資格で、それに苦労したなんて自分の無能を証明するようなものなのだけど、まぁ、実際無能だし、いいだろう。


5月17日 不合格発表と金の力で午前免除を決意

前月の試験でまさかの午前不合格、そして上司の叱咤を目の当たりにし、次は流石に受からねばマズイ、という危機感を覚えた。
そして1時間考えて得た結論は「午前試験免除の通信講習を受けよう」であった。
これが前述した「やや裏道」である。

「午前に課題が有るのだから免除にしよう」という理由が主だが、それ以外にもう一つ理由があった。
正直、勉強から離れて久しいこの脳みそでは、午前午後合わせて5時間という試験時間に耐えきれないのだ。
なので、試験当日は午後の150分だけに集中できるようにしてやろう、という魂胆である。
もっとも、誤解なきように予め言っておくと、「午前試験免除の通信講座」はただ受講すればいいというものではない。
最終的にはIPAが作成した、午基本情報技術者午前試験と同難易度、同形式の試験に合格しなくてはならない。
受験機会というチャンスが増えるが、別に簡単になる訳では全くないのだ。

まとめると、午前免除のメリット(デメリット)は以下の通りである。

メリット

  • 午前合格の機会が増える
  • 免除試験~本試験迄の間、午後試験の対策のみに集中できる
  • 本試験日には午後試験のみに集中できる

デメリット

  • お金がかかる(27,000円程度)

5月23日 「独習ゼミ」に申し込み

「午前試験免除の通信講座」について、ネットで調べたがどうもどこも大差がないように思えた。
結局、通信系で検索で一番最初に出てきた「独習ゼミ」に申し込むことにした。
通信系にしたのは単純な話で、長野の田舎住みだから通いなどできるわけもないこと、そもそもする気もないことからだ。
費用は27,000円弱。これを高いと見るか安いと見るかは人それぞれだろう。
僕は自分が楽をすることに関してはお金を惜しまないダメ人間なので申し込んだ。

ちなみに、試験結果の発表~午前免除講座の申込期限まではほとんど時間がない。申し込むかは別にして、選択肢に入っているならすぐに調べておくことをお勧めする。
ちなみに午前免除の試験は2回あるのだが、俺は申込みの時期が遅く1回しか受験できないコースになってしまった。


5月26日 受講開始

テキストとe-Learningのログイン情報が届き、早速勉強を開始した。
・・・というのは嘘で、正直7月頃まではテキストを流し読む程度だった。

まず、e-Learningの方式だが、これは以下のようになっていた。

・勉強時間記録
勉強開始前に「勉強開始」ボタンをクリックする
クリック後、1時間立つと自動的に1時間勉強したとカウント、記録される。
合計69時間以上勉強時間を記録すると、免除試験条件①を満たす。

・各章テスト
まず、1~11章の各章テスト(ほぼ全て過去問題)を受ける。
全て合格すると、全章含んだ修了テストを受験することができる。
これに合格することで、免除試験条件②を満たす。
なお、章テストは大体問題数15問程度で、正答率80%以上で合格、
終了テストは50問で正答率75%で合格だった。
また、それぞれの試験には受験回数制限が設けられており、
この回数以上に受験はできない。
なので、ダメ元で無駄に受験することは絶対にしてはならない。

これで過去問題に相当当たれたので、それが良かったかもしれない。
ただ、受け取ったテキストだが、かなり詳しく書いてあり、
正直「とりあえずやってみよう」派の自分にはあまり合わなかった。
結局、下記の市販問題集を眺めてたまに解くのがメインのスタイルであった。

上記免除試験条件①②を期日までにクリアすると
免除試験の案内が送られ、受験可能となる。

平成28-29年度 基本情報技術者 試験によくでる問題集【午前】 (情報処理技術者試験)


7月23日 午前免除修了試験受験
上記の受験資格をクリアすると、試験一週間前あたりに受験案内が届く。
確か神楽坂あたりの受験会場だった。
本試験と同じように9:30~12:00、本試験と同じ形式、難易度の問題を解く。
特に特筆することはない。

ちなみに試験会場は東京と大阪しか選択肢がなかった。
長野からだと朝早いので、前日の夜から東京のカプセルホテルに泊まって備えていた。
東京駅付近だとファーストキャビンホント好き。


7月24日 午前免除修了試験結果発表
さすが民間というべきか、なんと試験翌日にメールで合否通知が来た。
結果、66/80(合格点48点)、100点換算だと単純計算で82.5点と結構余裕で合格できた。
何だかんだ、e-Learningのテストで過去問に触れまくったのが大きいのかなと思う。


8月~10月 午後試験対策
さて、そんな訳で後は午後試験の対策のみに集中できるようになり、気持ち的にかなり楽になった。
そもそも前回も午後は受かっている。
・・・のだが、いざちゃんと勉強すると、自分の理解度の低さに嫌気が差し、逆に不安になっていった。
不安を克服するため、1冊をやり込む方針で勉強した。
具体的には下記の過去問題集を前から順に説いていった。
最終的に全体では1週し、間違えた問題には△、理解不能だった問題には☓をつけ、
2週目は△と☓だけを解く、という風にしていた。

平成28-29年度 基本情報技術者 試験によくでる問題集【午後】 (情報処理技術者試験)

また、プログラミング言語は前回はJavaで受けたが、今回は形振り構わない方針だったので、
SEにあるまじき表計算を選択した。
下記のテキストを買ってはみたが、正直関数の一覧をちらっと見た程度。
それでも本番は全問正解だったので、Excelで帳票とかを作ったこと有る人ならプログラミング経験者でも表計算の方が楽だと思う。

改訂3版 基本情報技術者 らくらく突破 表計算 (情報処理技術者試験)

勉強時間的には正直あんまり。
平日は平均して1問やるかどうか。
休日は図書館に行って5問程度解く、みたいな感じだった。
正直、「図書館が人いっぱいだから今日は勉強できなくても仕方ないね!」という自己弁護をしたことも数え切れない。


10月15日 基本情報技術者試験受験

試験当日、長野の会場に新幹線で受験しに行った。
午後からなので、大分余裕を持って行けるのが嬉しい。
改めて午前免除のメリットを感じた。
ちなみに時間に余裕を持って出発したはずが、なんと開始時間を13:00のはずが13:30と勘違いしており、結果ギリギリの到着となった。
ちゃんと受験票を見直そう(アホ)。

試験は正直、失敗した。
緊張か何かわからんが、なんと必須問題のアルゴリズムを解き忘れていることに試験終了15分前に気が付いた。
めっちゃあわてて読んで、出来る限り回答した。
得点源で重要部分のここを忘れるとか意味わからんが、遅刻で気が動転していたのだと思う。
気をつけよう(アホ)。

11月15日 基本情報技術者試験結果発表

だけど、完全に忘れていた(アホ)。

12月1日 合格発表に気付く

「発表って12月のいつだっけ?」と受験票を見直すとなんと2週間以上前に発表されていたことに気が付く。
確認したところ、無事75点でギリギリ合格していた。
アルゴリズムは慌てたせいでほぼ全滅だったのだが、他の部分でなんとかカバーできた模様。
やっぱり実務経験あっても勉強しないとこの試験受からないわ、と改めて認識。


会社の人はほぼ全員持っている資格なので、これでようやく隠さないでよくなった。
実務には生きないと思うけどな。
色々IT系の問い合わせを受けるけど、
受かる前から「なんで基本情報持っている人に落ちた俺がDNSの説明しなくちゃいけないんだろう」とはよく思ったし。
試験と実務を結び付けられることも、1つの能力なのかしら。

計算式(文字列)の計算結果を出す方法

ユーザーに123+456みたいな計算式を入力させ、その結果を算出したい。
やろうと思えば、「+等の演算子でSplitして、各変数を格納して・・・」という感じでできるかもしれないが、
こんな操作、どうしても既存のメソッドがある気がしてならない。

調べてみたところ、色々な方法が見つかった。
私的に一番わかりやすいのはDataTable.Computeメソッドを使うというものだ。

こんな感じ。
DataTableが完全にただの傀儡でちょっと気持ち悪いが、一番短く、分かりやすくかける方法だと思う。
なお、DataTable自体は割かし重いので、繰り返し実行する場合はメモリ使用量やパフォーマンスに注意が必要。


アフィを入れてみたけど、アドブロックでちゃんと非表示になった。
優秀やなぁ。
bitFlyer ビットコインを始めるなら安心・安全な取引所で