win-acmeを使って自鯖のBlogengine.netブログをTLS化する

さて、Win-acmeを使用してLet'sEncryptの無料サーバー証明書サービスを利用するのを、うちのサーバーでも行ってみました。

尚、Windows Server Insiderで実行しています。

まあ、使い方に関しては、いろいろすでにサイトがありますので、ここではほぼ割愛します。
が・・・記事の画像リンクに問題が

Win-acme1.9.11.2をDLしてきて、Hyer-V上のサーバーで実行。
初めてなので、New-Certificateを選択、すべてのサイトに適用、取得用のメールアドレスを設定していくと、すんなりと設定が終わりました。IIS10上の設定もほぼ自動で行ってくれるので楽ですね。
うちにもADCSはたっているので、そちらから証明書もとれるのですが、あくまで自己署名なので使いたくはなかったのです。

ですが、BlogEngine.NETとWindows Live Writerの組み合わせ(というか、うちのBlogEngine.NETのバージョンかな)だと、記事に画像取得のWebサービスがFQDNで記載されてるのです。
これだと、画像取得がHTTPになってしまうので完全にはならず・・・

うちの場合、SQL化はしてないので、XMLをGrep置き換えしてみました。
http://<FQDN>/image.axd?・・・
これを
/image.axd?
とPostsの中のXMLに対して行い、HTTPS/HTTPどちらからも正しくアクセスできるように書き換え。

これでEdgeやIEで警告が出なくなりました。

・・・最初はどこだ?と探しましたが、画像リンクのホバーを見て、ああ、これかと。
無料サーバー証明書とは・・・便利になったものです。(その分強度や認証レベルは低いとはいえ)

2018/08/11 追記

BlogEngine.NETに思いっきりバグあるでやんの・・・
BlogEngine.CoreのMetaWeblog APIのNewMediaObjectでしたな・・・
API/MetaWebLog/MetaWeblogHandler.csの788行目
settings.xmlにある、RequireSSLMetaWeblogAPIがTrue (つまり、MetaWeblogAPIにSSLを要求)なら、

rootUrl = rootUrl.Replace("https://", "http://");

https://をhttp://に置き換える・・・ってすべてSSLのこと考えてない!
ということで、ここを

rootUrl = rootUrl.Replace("http://", "https://");

に修正(本来はまあ必要ないはずだけども)

尚、設定をFalseにすると、強制でMetaWeblogAPIハンドラがHTTP://にされてしまうという・・・

これまた、3.3.6.0(3.1.8.0ではでなかったのに)でOpenLiveWiterで修正Publishすると日付がDateTime.MinValueになるバグ・・・
同ファイルの331行目

EditPostなのに、DateCreatedに強制入れてるやん・・・

if (sentPost.postDate == DateTime.MinValue)
    post.DateModified = BlogSettings.Instance.FromUtc();
else
    post.DateCreated = sentPost.postDate;


と変えてみた。(まあてきとうな・・・)

・・・最近メンテされてないからか、SSLオンリー考えられてないのかな・・・

 

 

 

コメントを書く

Month List