LoginSignup
3
3

More than 5 years have passed since last update.

Ubuntu 13.10にruby 1.9.2をインストールする時にSSLv2のエラーが出たら

Posted at

rbenv install 1.9.2-p180 すると、rubyのビルド時にエラーが出てしまった。

ossl_ssl.c:110:1: error: ‘SSLv2_method’ undeclared here (not in a function)
ossl_ssl.c:111:1: error: ‘SSLv2_server_method’ undeclared here (not in a function)
ossl_ssl.c:112:1: error: ‘SSLv2_client_method’ undeclared here (not in a function)

どうせaptitude install opensslするんだろ、と思いきや、実は脆弱性のあるSSLv2は最近opensslライブラリから消されてしまっているらしい。
http://ja.wikipedia.org/wiki/Transport_Layer_Security#SSL_2.0
つまり文字通り、undeclaredというエラーでした。

どうせ脆弱性があるならそんなものはいらん、というわけでソースにパッチを当ててしまう。

--- ruby-1.9.2-p180/ext/openssl/ossl_ssl.c  2010-12-23 22:24:00.000000000 -0500
+++ ruby-1.9.2-p180/ext/openssl/ossl_ssl_fixed.c    2011-10-28 11:39:30.265970001 -0400
@@ -107,9 +107,9 @@
     OSSL_SSL_METHOD_ENTRY(TLSv1),
     OSSL_SSL_METHOD_ENTRY(TLSv1_server),
     OSSL_SSL_METHOD_ENTRY(TLSv1_client),
-    OSSL_SSL_METHOD_ENTRY(SSLv2),
-    OSSL_SSL_METHOD_ENTRY(SSLv2_server),
-    OSSL_SSL_METHOD_ENTRY(SSLv2_client),
+    // OSSL_SSL_METHOD_ENTRY(SSLv2),
+    // OSSL_SSL_METHOD_ENTRY(SSLv2_server),
+    // OSSL_SSL_METHOD_ENTRY(SSLv2_client),
     OSSL_SSL_METHOD_ENTRY(SSLv3),
     OSSL_SSL_METHOD_ENTRY(SSLv3_server),
     OSSL_SSL_METHOD_ENTRY(SSLv3_client),

をopenssl.patchなどで保存し、

rbenv install --patch 1.9.2-p180 < ./openssl.patch

とする。
途中、ruby-1.9.2-p180/ext/openssl/ossl_ssl.cの場所を聞かれるが、ruby-buildはダウンロードしたソースファイルを/tmp/ruby-build.(DateTime).(pid)下に置くので、/tmp/ruby-build.hogehoge.brabra/ruby-1.9.2-p180/ext/openssl/ossl_ssl.cとか答えると、パッチが自動的に当たり、ビルドが通る。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3