↑日記で日々積み重ねた情報をトップの「わんこのページ」にまとめています。

おのたく日記 [RDF] YouTubeも始めました→


2017-08-24(Thu) [長年日記]

[Stone] Windows版 stone TLS1.2対応

のようにDebian testing(10 Buster)のOpenSSLが、

* Disable TLS 1.0 and 1.1, leaving 1.2 as the only supported SSL/TLS

version. This will likely break things, but the hope is that by

the release of Buster everything will speak at least TLS 1.2. This will be

reconsidered before the Buster release.

[openssl_1.1.0f-4_changelogより引用]

なんて激しいことを言っていて、TLS1.2まで全てを上げないとならない。

参考: Linux Daily Topics 2017年8月15日 ふるいTLSにはサヨナラを ―Debian,TLS 1.2対応を強化

stoneのWindows版バイナリのTLS1.2対応版は公開されてない

そんな中、stoneで、公開されているバイナリはstone version 2.3e 2.3.3.20 for Windows 64bitのバイナリで、TLS1.0までしか対応していなかった。

stone TLS1.2対応版ソース

調べてみると

CVS レポジトリの最新版 stone.c は TLS1.2 に対応しております。

http://ja.osdn.net/cvs/view/stone/stone/stone.c?view=log

VisualC++ の場合は、

nmake win-svc

などと実行すればビルドできます。この場合、regex.h ではなく pcreposix.h

が参照されます。

PCRE は http://www.pcre.org/ からダウンロードできます。

[仙石浩明の日記より引用]

ということで、確かに、

OSDNでのCVSレポジトリには、TLS1.2に対応したソースが公開がされているのだけど、はやりコンパイル済みのWindows版のバイナリは見つからなかった。

このソースを取ってきて、Cygwinでは、stone TLS1.2対応版を

$ make TARGET=stone ssl_stone

で簡単にコンパイルできた。

しかし、Cygwin版だとWindowsサービスにならない。

Windows版のコンパイル

そこで、Windows版をコンパイルすることを決意した。

おうちさーばは、最近Dockerコンテナが沢山動いていて、VMが重くて最近の重厚長大なVisual Studioが動かないので、クラウドにWindowsを用意して無料のVisutal Studio Community 2017をインストールして、コンパイルした。

Windows版 stone TLS1.2対応版のコンパイルに必要な物

最近のVisual Studioは、Pythonまで対応していて、必要な物だけインストールできるようになっているのだけど、stoneのコンパイルには、「C++によるデスクトップ開発」と、そのオプションの「Windows XP Suppor for C++」が必要。

オプションを入れないと、サービス化するためのmcとrcがインストールされない。

あと、stoneの前提のOpenSSL 1.0と、PCREも必要。

OpenSSLは、最新の1.1だと、stoneのソースが対応していないので、Developer Files ZIPと、Binary Files ZIPを使った。

WINDOWSだと、ソースのTLS1.1とTLS1.2が無効になっているので

#ifdef WINDOWS

-#define OPENSSL_NO_TLS1_1

-#define OPENSSL_NO_TLS1_2

+// #define OPENSSL_NO_TLS1_1

+// #define OPENSSL_NO_TLS1_2

[diff stone.cより引用]

として有効にしてコンパイルした。

変更したソースは、GitHub takuya-o/stoneに公開しておきます。

ローカルでビルドしたバイナリも、同じくGitHubでstone24LB.zipとして公開しています。

本日のPingbacks(全0件)

Google Web検索 on-o.com内を検索