2022年08月18日

【日記】CPUグリス塗り直して右往左往した話し

こんにちは。

日記です。誰の役にも立ちません。

定期的に自宅PC内部のホコリ除去などを行っています。ついでにCPUグリスも塗り直しています。
今回もいつものようにヒートシンクを取り外したのですが、そのとき基盤に固定するためのスペーサが1つぽろりと外れてしまいました。
樹脂でガチガチに固定するスペーサでしたので簡単には直せません。

01.png

02.png


とりあえず自宅にあった接着剤を使ってみました。24時間後には強力に完全硬化すると謳っている接着剤です。
その間PCを使えませんが仕方ありません。スマホやタブレットでリモートワークをこなしつつ30時間放置しました。

03.png

いざヒートシンクを取り付けて起動してみたのですが・・・・CPU温度もアチアチ、ファンも常時フル回転状態。
CPUの熱がヒートシンクにまったく伝わっていないようです。あかん・・・。

その原因を探ってみると、やはり件のスペーサが問題のようです。
スペーサにネジ止めすることでヒートシンクをCPUに押し付けなくてはなりませんが、問題のスペーサがネジ止め圧に負けて軽く浮いてしまっています。
そのせいでヒートシンクとCPUヒートスプレッダの間に僅かに隙間が出来ていました。これじゃ冷えるわけないですね。
空気の断熱効果恐るべし。

04.png


問題のスペーサは事実上もう役に立ちません。さてどうしたものか。
私の使っているPCは手のひらに乗るほどコンパクトなNUCで、ケースとヒートシンクの距離が非常に近い点に注目してみました。
(エアフローはそもそも無いに等しいのでファンとヒートシンクが命綱です)
ケースの内側の面でヒートシンクをCPUに押し付けてしまえばいいのでは?

接着剤同様にたまたま自宅にコルク製のクッションシールがありました。
1枚の厚さが1mm程度でしたのでこれを数枚重ねてケースとヒートシンクの間に挟みこみました。
1mm単位では隙間の精度に合わず若干難儀しましたが力技で対処。ケースもやや無理矢理閉じていざ再起動。

05.png


おおお!・・・嘘のように静かになりました。
クッションシールのせいで基盤に無理な力が加わっているため、実はCPUファンに影響が出て回ってないんじゃないか?とさえ思うほどに静かです。
念のためCPU温度とファン回転数をモニタするソフトウェアで両者とも安定していることを確認しました。
ブラウザでYahoo!ニュースを開いただけでドライヤーのごとく唸っていたファンでしたが、今はホロホロと穏やかに回転しています。

小さなスペーサ1つのためにPCを新調しようかとまで考えてしまいました。
載せてるCPUももう5世代前の古いものでWindows11の要件を満たせていないし!などと新調する理由を無理矢理捻り出したりもしました。
しかしこうして動作が安定すると逆に愛着が深くなってきてしまいました。
もう少し一緒にWindows10で頑張ろうね!







.



posted by Huwy at 12:14 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2022年08月14日

【スマートホーム】SSL証明書更新処理の自動サイクル

こんにちは。

先日似たような記事を書きました。そちらはSSL証明書更新処理結果のメール通知についてです。
今回は更新処理のサイクルについて書きます。



■Let's Encryptクライアント「Lego」の罠

SSL証明書はLet's Encryptの無料のものを利用しています。
Let's Encrypt公式のクライアントもあるのですがどうも評判がよろしくないようで、安定してると評価の高いLegoを利用しています。

Let's Encryptの証明書は90日で期限切れとなることは前回記事にも書きました。
じゃあ毎日更新しとけば安心じゃんと考えがちになってしまいますが、あまりに頻繁にリクエストすると認証局からブロックされてしまうそうです。
認証局として負荷を抑えるという目的でしょうかね。Legoもそうした方針を尊重しているようで、デフォルトでは有効期限が残り30日にならないと認証局に更新リクエストを送信しない仕様となっているようです。

実はこれに素直に従うとけっこうややこしいことになります。
月ごとに日数が異なったり2月は短かったり閏年があったり・・・ということをしっかり考慮して更新処理をスケジュールしておかないと、更新可能な30日間を取りこぼして期限切れになる可能性があります(後述)。



■定期実行のスケジュールにはcrontabを使う

crontabは指定した「月日時分秒」のパターンで同じ処理を繰り返し実行するようスケジュールできます。
SSL証明書の定期更新というタスクにはまさにうってつけで、ネット上の多くの例でも取り上げられています。
しかし「月日時分秒」でしか指定できないという点がネックとなり、更新可能30日間をすっぽりとスキップしてしまう危険も含んでいます。
例:毎月01日に更新処理をスケジュール
・01月31日が有効期限=更新可能な30日間は01月02日から開始
・01月01日に実行→更新可能期間前なので更新スキップ
・02月01日に実行→有効期限切れ

◇月2回実行
毎月2回実行していれば更新可能な30日間を取りこぼすことは無いでしょう。
しかし実際に更新できるまで少なくとも60日間あるのに2週間足らずのインターバルで無駄撃ちを重ねるのもカッコ悪いなあと思ったり。
更新処理は大した負荷ではないので気にすることはないんでしょうけど、こういうとこ気にしちゃう性格なんとかしたい。

◇その他の方法@
crontabでも工夫すれば「月日時分秒」ではなく「30日ごと」等で更新処理を動かすことも可能だそうです。
crontabのスケジュール自体は「毎日1回」としておき「当日が基準日からの経過日数30日ごとにあたる」場合にのみ更新処理を実行するという条件付けをする方法です。
しかし月2回実行以上に無駄撃ちしまくりですし、crontabの書き方もトリッキーになります。
パッと見て何やってるのか理解しにくいのが難点です。

◇その他の方法A
crontab以外にもタスクをスケジュールできるコマンドがあります。atコマンドです。
しかしatコマンドは「POSIX準拠」なる仕様だそうで、bashを標準シェルとしている多くのLinuxディストリビューションでは扱いにくいとのこと。
Raspberry Pi OSも例に漏れず、atコマンドからbashで書いたスクリプトを実行できない可能性が高いです。
そもそもRaspberry Pi OSにはatコマンドが含まれておらずインストールする必要があります。
また、atコマンド→shを呼び出し→bashを呼び出しという手間が発生し、やはり後々のメンテナンスが面倒なことになりそうです。



■Legoの理解不足だった

先程「デフォルトでは有効期限が残り30日にならないと認証局に更新リクエストを送信しない仕様」と書きました。
そうです、あくまでデフォルトではそういう仕様だというだけでオプションで変更することが出来ます。
勉強不足でこの点を見落としていました。むしろ30日制限は認証局側の制約だと勝手に誤解していました。

「--days xx」とオプション指定すれば残りxx日であれば更新を認証局にリクエストします。
なので、crontabで2ヶ月毎の01日にスケジュールして更新処理で--days 90とオプション指定しておけば、約60日ごとに証明書が更新されるサイクルが組めます。

crontab:隔月01日の03時15分に更新処理を実行する例
15 3 1 */2 * /etc/renew_ssl.sh

/etc/renew_ssl.sh:有効期限の残日数に関わらず強制的に証明書更新する例
いろいろ準備
lego xxxxxxxxx renew --days 90
いろいろ後処理


■まとめ

Legoの利用例はネット上にたくさん情報があるのですが「更新は月1回やっとけばいいっしょ」という論調が多い気がします。
しかしそこに上述のような罠が潜んでいる点まで言及している情報はありませんでした。
まあ私が読み取れていなかっただけって話しですけど・・・。
「30日制限は認証局側の制約」ってどこで誤解したんだろ・・・(´・ω・`)







.
posted by Huwy at 08:12 | Comment(0) | TrackBack(0) | スマートホーム | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。