Kizakura について

I am a developer I use C#.net,VB.net,C, and .... T-SQL!

電子署名付き電子メールの不具合

半年前に、問題発生してるの気づいて、ご連絡したのですが、
対処出来る部署まで届かなかったらしく、まだ不具合が発生し続けているので、
連絡用にサイトに上げました。

メールに添付された電子署名に問題が発生してる状況でして、
メッセージとしては、
デジタル署名が正しくありません
メッセージにデジタル署名が含まれていますが、有効な署名ではありません。
メッセージの署名に使用された証明書の発行者はこの種類の発行証明書発行者として信頼していない認証局です

原因の調査

メッセージを調べたら、ズバリこれってのは無かったのですが、ほぼこの事象と思われます

https://www.cybertrust.co.jp/sureserver/support/faq/5i9jb5d6f7kg.html
サーバー側の中間CA証明書が正しくない
ブラウザにルート証明書が入ってない

ローカルの確認

ブラウザ側のルート証明書は確認できるので、確認してみます
https://www.cybertrust.co.jp/sureserver/support/files/WinVista_7_rootcheck.pdf
サイバートラスト社のルート証明書はSecurity Communication RootCA1 と CA2との事

ローカルの証明書は存在しているので、
原因はサーバー側の中間CA証明書が正しくないということが確認できました

サーバー側の確認

中の人ではないので、サーバー側で確認できるのはあまりないのですが、
ポリシーをサイバートラスト社が出してくれているので、それで確認することが出来ます
https://www.cybertrust.ne.jp/ssl/repository/SMCP.pdf

このPDFに
Cybertrust Japan SureMail CA G4
は、認証局の有効期間2019/9/27-2029/5/29と記載があります
上記で確認した、ローカル側証明書と開始日が違うのは、
2019/9/27というのは、サイバートラスト社がリニューアルしたとのこと
https://www.cybertrust.co.jp/info/2019/0930-sureserver-renewal.html

で、この中に中間CAについては、
「新しい中間CAより証明書を発行いたします。」と、記載されています!

問題個所の特定(たぶん)

たぶんなのですが、銀行様は2019/9/29以前に中間CAをサーバーにインストールしたけど、
リニューアルした後、新しいのに差し替えていないのではないかなと考えられます。

中のセキュリティ担当の人は、リニューアルのお知らせを見過ごしてしまったのでしょうか?
丁寧な解説はされてますが宜しくないですね
https://www.smbc.co.jp/security/smime/

再度の報告

再度「みどり色の銀行」と
最近便利なことに金融庁のwebに窓口を発見したので、こちらに投稿しておこうかと思います。
https://www.fsa.go.jp/opinion/

RazorページでのNLogとxunitの使用


.net6の情報が出ていたので、nlogのサンプルを書き直しました。
xUnitと併せてのサンプルです

.NET 6.0 C# Razor
NLog4.7.15
NLog.Web.AspNetCore4.14.0
xunit2.4.1

公式がgithubに記載している以外では
https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-6

[5. Write logs]でControllerから取得しているのですが、
ここでは、Razorを使いたいので、PageModelをつかってます

共通で使用するクラスとかでログ出力するとき

中規模以上のシステムになると、共通でつかうクラスが出てきますが、
ログを出力したいとなると、Modelで取得したLoggerを引っ張りまわすか、その場で生成するという手法が考えられます

Loggerを引っ張りまわすときに呼び出し元のModel名だと都合が悪いので、一回PageModelに型変換すると予備先で楽になります

xUnitで単体テストするときに

xUnitから呼び出す時に、下記の問題がありまして
Razor Pageで、nlogを使うと、コンテキストからloggerをもらうので、
xUnitでログを出力するところがテストできてないです。
ものすごく頑張ればモデルを作れるハズみたいです(下の方のソースにindexModelをつくってる)
https://docs.microsoft.com/en-us/aspnet/core/test/razor-pages-tests?view=aspnetcore-3.1

解決策としては、
ログはエラーハンドリング系にだけに入れておき、xUnitで生成時にILoggerなどにはnullを設定して
どうしてもログ出力を通過する個所については、コンパイル時にシンボル指定して回避する

共通処理等でまとめPageModelから遠いクラスでのエラーハンドリングとかでは、
個別にlogerを生成したほうがコーディング量は減るかもしれないです
ログファイルへの出力の場合はファイルへの書き込み待ちが発生するので推奨できないですが、
ログ専用にsyslogサーバーなどを別途立ててxml,jsonもしくはキュー、クエリでログを投げる場合は良いと思います

今回作成したプロジェクト

https://www.6sense.co.jp/dl/nlog_test_net60_v2.zip

EU 一般データ保護規則(GDPR)対策

GDPR対策をしないといけない状況なので、簡単な物を書きました
eu圏外でも、該当ドメインは取得できるが、都度判断するのは、運用的にみても、コストがかかりますので、
初めからはじいてリスク回避するならば、EUをサービス対象外にする事も考慮に入れた法は良いです
その辺はリスクヘッジをどうするのかの経営判断でしょうか

あと、スイス連邦データ保護法改正案も制裁金が高額なので、検討すべきです
https://www.jetro.go.jp/world/europe/eu/gdpr/

スイス連邦データ保護法改正案
https://www.jetro.go.jp/world/reports/2018/01/74c0fb55f759d238.html

メールアドレスの国別コードトップレベルが、EUなのかを判定する為の簡単なメソッド
c# ASP.NET6.0 Razorで作成してます。

https://www.6sense.co.jp/dl/eu_filter.zip

パーコレートエラー(Percolat error)について

みずほ銀行の障害報告書で「パーコレートエラー」なる単語が出てくる。

https://www.mizuho-fg.co.jp/release/20210615release_jp.html

https://www.mizuho-fg.co.jp/release/pdf/20210615release_3_jp.pdf

IBM系のシステムとか、大規模システムで採用される物で、
複数のエラーが発生し、自動でエスカレーション判定したエラーのことをパーコレートエラーと言ってる

近いとものだと、バグ管理表(RedMineとかPCS)に起票するときに、
起因するバグが元で、複数の不具合を起こしたのを「重複した(同件の)不具合」と
と記載して、起因するのを直せばこれも治るので、まとめておく(これをプロシージャ―でやってくれる!)感じでしょうか

IBMのマニュアルを調べると出てくるのは、パーコレートの設定などですが、これだけでも十分

プロシージャ―で、パーコレートの設定(例外処理の中で、さらに例外の時は処置を「パーコレート」に設定)

https://www.ibm.com/docs/ja/i/7.3?topic=handlers-using-condition-handler

リカバリー処理の設定(リカバリーが正常にできなかったから、パーコレートに設定されているエスカレーションするよ)

https://www.ibm.com/docs/ja/zos/2.2.0?topic=macros-setrp-set-recovery-processing-options

MINORIでは、2重エラーが発生したら、パーコレートに設定して、エスカレーション実施(再起動)に設計したみたいですね

「パーコレート」は日本語にすると「浸透」
アウトドア用品でコーヒーを入れるのもので「パーコレーター」のがありますが
コーヒー粉をセットして、お湯をそそぐと、浸透して、コーヒーが出来上がる。
オートキャンプする人にはおススメのアイテムです。

パーコレートエラーを理解するのに、コーヒーを入れるパーコレーターで理解できるような気がします

お湯が「各エラー」、コーヒー豆とフィルターが「システムのふるまいを決定」
出来上がったコーヒーが「エスカレーション」なので、
MINORIでの「処理区画のトランザクション停止・起動(約1秒間)」

エスカレーション5回判定で再起動するのは、強引すぎるな気がします。

2000年代だと、ゾンビプロセスやメモリリークとか原因不明のスローレスポンスとかで、
とりあえず再起動しておけば治ったので良かったのですが、
2010年代になると、win7リリースされてから、プロセスやメモリを細かく見たり、テストツールや、デバックツールが進化してきて、
それらを駆逐できるようになってきたので、「再起動すれば治る」は最終手段になってきたのに、そんな設計にしちゃうなんて。
(それらの有償ソフトを稟議書とおして買ってくれるかは別問題で存在しますが)

ASP.NET6.0 Razor でのPageHandla周りのコーティングについて

submitボタンを複数使いたいときのサンプルです

cshtml側の記載

asp-page-handlerに指定する

cshtml.cs側の記載

OnPostの後ろにasp_page_handlerで指定した物をくっつけるとハンドリングできます

ついでにBindPropertyの有り無しの取り扱いもサンプルに入れました
BindPropertyを使うと引数の定義をしなくても、
メソッドの中で扱えるので、楽になります

今回作成したプロジェクト一式

https://www.6sense.co.jp/dl/PageHandler_test.zip

c# Razor .net6にて、NLogでのログ出力

.net6になってから、start.csが廃止されて、program.csも中身が変わったこともあって、
サイトを調べても情報がないので、2時間ほど、挑戦して出るようになったので、ここにメモっておく

環境
visual studio2022
razor
.net6
Nlog 4.7.13
Nlog.Web.AspNetCore 4.14.0

1.NuGetでNLogをインストール
visual studio2022のツールからNlogとNlog.Web.AspNetCoreの最新をインストールする

2.nlog.configを用意する


とりあえず、転がってたのをそのまま使います。

参考はこれ

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-2


3.Program.csを変更する

.net6でプロジェクトを新規作成すると、デフォルトでbuilderが定義されているので、追加で、builderに設定を加えます。

var app = builder.Build();よりも前に記載しないと実行時エラーになります

cs0618で警告が出ますが、新しい書き方だと、.net6じゃない気がします

4.appsettings.jsonを少し変更する

これもとりあえず、転がってたのをそのまま使います。

参考は上記記載と同じgithub

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-2

5.Index.cshtml.csに出力するコードを試しに記載する

6.実際に動かして、出力されるのかを確認

info-2022-02-03.logの中身

infoレベルの中に、infoとerrorの両方出るのですね。errorしか使わないと思いますが。

azure上で動かしたときに、どうなるのかも見てみたいです

今回作成したプロジェクト一式

https://www.6sense.co.jp/dl/nlog_test.zip

2022/4/1追記 追加修正情報があったので、別途公開

備忘録:屋根塗装

実行できていなかった、裏側のステンレス材の屋根塗装半分のメモ

水性シリコン遮熱屋根用 専用下塗り剤 7kg 2缶
水性シリコン遮熱屋根用 14kg 2缶
使用ローラー ピーチ外装用 30mm
(20mmだと屋根材の隙間に届かないので、刷毛塗りが必要になる)

色は、シティグレーを使ったが、道路から見えないのでホワイトでもよかったかもしれないが、上塗りの塗り残しが気になる。
下塗りに着色すればよいのかもしれない?

終盤体力が無くなって、一斗缶をつっているザイルに足を引っかけてしまい、塗料をぶちまけてしまった。頑張って伸ばしたけれど、伸ばしきれないところは、翌日になって、厚さ1mm以上の処でひび割れてしまっていたので、車用のholtパテで埋めて、上から再塗装しました。

雨漏りの対応

築20年以上お家で、スレート屋根からの雨漏りがひどかったので、素人が対応した時の記録

大雨の最中に屋根裏にもぐって、どこから雨漏りがしているのかを確認すると突き抜けている釘っぽいものから、滴り落ちるのが確認できた

棟板金の下に敷いている板を押さえるネジが錆びてやせ細って、そこから雨漏りが発生

錆びたくぎ →抜いた後のコーキング材

対応としては

1.棟板金をはがす
2.押さえていた板をはがす
3.錆びたネジを引っこ抜き、屋根の上から、シリコンコーキングを注入して、穴を塞ぐ
4.新しい板と、棟板金を設置

施工前に動画で調べまくっていたら、(有)宮原窯業様がアップされていた動画にて、水切り加工しないと、再度雨漏りの可能性があるとの事で、それに従う
https://www.youtube.com/watch?v=2ZHTuB250SQ

しかし、雨水が、スレート材を横に走り、極力、棟板金の下には入ってほしくなかったので、
変性シリコンで、水の通り道を作成。これをやることで、雨水が横に走らず、そのまま真下に行ってくれるようになる
(ただし見た目がよろしくない)シリコンコーキングで水路を作る

遮熱塗料にて、屋根塗装
割と簡単に手に入って、取り扱いが楽な水性で探して、関西ペイントの水性シリコン遮熱屋根用で施工
https://www.kanpe.co.jp/products/139/index.html

下塗りが1回で済むと思っていたら、スレート材が劣化しまくっていて、吸い込みが激しく三重に実施。上塗りも三重に施工
次は塗り替えではなく、吹替を検討できるようにする(防水気密シートっぽい黒いシートはパサパサ。もしかして、弾力性がもともとないかも)

施工後2年経過で、タスペーサーがずり落ちてきているので、目視で、1センチほど落ちてきたら、再度、差し込んであげる必要がある
(風で落ちることがないらしいので、スレート材の角度と、摩擦力の問題か?)
https://www.youtube.com/watch?v=1NDClP5FTAw

ドスパラノートパソコンの修理

いつも、HDD障害の修理が多いのですが、
今回は、モニタが映らなくなったとの、ご相談を頂いた。

ちょっと前のドスパラのPrime Critea DX2
というモデル。

4・5年経過してるので、買い替えを進めようかと考えたのですが、
福島の除染現場で使われていて、めんどくさいことにAuto CADと蔵衛門が入ってるので、
買い替えは止めて、修理に出すことにした。
フォーマットされてしまうと困るので、事前にdiskだけは差し替えて、
6/19にドスパラ本店に持ち込む。休日の午前中だったので、修理の窓口には、かなりの行列ができて1時間ほど待った。

1・2週間ほどして、電話にて、マザーボードの交換で、中国から取り寄せるとの連絡が有。
待つこと2カ月たって、ようやく修理が完了したとの事

故障原因は、
VGA不良とマザーボード不良で、両方とも交換。
修理金額は、32,246円也

ちょっと、時間かかりすぎですね

スパムの削除

WordPressのスパムコメントが25000件程たまってたので、掃除がてら、一気にMySQL上から削除。
DELETE FROM wp_comments
即時消えてくれました。

管理画面からやると、もっさりしてるのは、1件ずつ削除してるからかな