2005-04-15 [長年日記]

OpenSSLでsubjectAltNameを設定する

まず、openssl.cnfをコピーしてきて、[v3_req]セクションに以下を追加します(ホスト名の場合)。

[v3_req]
# ここに元からのものがある
subjectAltName=DNS:hogehoge.example.com

証明書要求を作ります。鍵は既に生成されていてserver.keyに入っているとします。

openssl req -new -key server.key -out server.req \
  -config openssl.cnf -reqexts v3_req

CA側での署名は以下のようにします。

openssl x509 -req -CA ca.crt -CAkey ca.key -days 365 \
  -sha1 -in server.req -out server.crt -CAserial ca.srl \
  -extensions v3_req -extfile openssl.cnf

[Q3] DWebBrowserEvents2::NewWindow2

HTML表示でtarget付きのリンクをクリックした時などにデフォルトのブラウザではなくてIEでリンクが開かれてしまうというのを直すために、DWebBrowserEvents2::NewWindow2をハンドルしてみたのですが一筋縄ではいきませんでした。

イベントを受け取った時点でURLを取得し、デフォルトの動作をキャンセルしてShellExecuteExすれば良いかと思ったのですが、その時点でURLを取得する方法がありませんでした。仕方がないので、WebBrowserコントロールのIDispatchインターフェイスを返して、そのコントロールのDWebBrowserEvents2::BeforeNavigate2で処理すれば良いかと思ったら、本体のWebBrowserコントロールをそのまま渡してもだめでした。結局その時点で新たに別のWebBrowserコントロールを作成して、そのコントロールのBeforeNavigate2でShellExecuteExしないといけないようです。

そのためにWebBrowserコントロールを一つ作るのもあれなので、呼び出してくるメソッドを調べて自前でそれらのインターフェイスを実装してしまうのが良さそうです。しかし、そのシーケンスはドキュメント化されていませんし、バージョンによって微妙に異なりそうな気がするのがいやな感じです。

本日のツッコミ(全11件) [ツッコミを入れる]
# 社本@ワック (2005-04-15 20:33)

んん。<br>DWebBrowserEvents2::NewWindow3じゃダメですか?

# snak (2005-04-16 01:14)

XP2のSP2以降のみというのが辛いですね。

# snak (2005-04-16 01:14)

う、XP2のSP2じゃなくて、XPのSP2です…@酔っ払い中

# 社本@ワック (2005-04-16 02:53)

ほんとだ。失礼しましたー。<br>お。INewWindowManager なんてものも発見。<br>でも、こいつも、WinXPSP2 or lator ですね。。

# snak (2005-04-16 18:29)

SP2でポップアップブロックをするために色々と入ったみたいですね。

# Azol (2005-04-17 05:41)

I've found a bug (2.9.13.1966) - when using "Apply rules to all" not all rules are applied.

# snak (2005-04-17 18:34)

Could you explain details?

# Azol (2005-04-18 03:49)

Well, I tap 'Apply rules to all' and program obviously does nothing - then I tap 'Apply rules' and they really apply to messages in current folder (I see a progress bar for a moment). 'Apply rules to all' seems to have no effect at all (no progress bar).

# snak (2005-04-19 07:44)

I have checked this but it worked well here. I'll dig into it later. If you have further information, please tell me.

# snak (2005-04-21 12:08)

I added this issue to BTS though I haven't reproduced it yet.<br><http://q3.snak.org/bts/guest.cgi?project=Q3&action=view_report&id=895>

# snak (2005-04-22 11:38)

You might try taking logs. You can change the log settings from [Misc] panel in [Options] dialog. Try changing it to "DEBUG".<br><br>And if you send me your rules.xml, I will check it.

[]