このウィキの読者になる
更新情報がメールで届きます。
このウィキの読者になる
カテゴリー
最近更新したページ
最新コメント
Synergy by stunning seo guys
RedHat9でyum by stunning seo guys
MRTG by stunning seo guys
rpmbuild by stunning seo guys
WevDAV by awesome things!
ubuntuメモ by check it out
mingplotの導入 by check it out
ServerIron設定メモ by awesome things!
mount by stunning seo guys
FrontPage by check it out
Menu
ここは自由に編集できるエリアです。

OpenSSL

OpenSSLのインストール 〜 証明書作成まで

※つまづきながらインストールした経緯をそのまま記録しています。

公式サイト
http://www.openssl.org/

環境
RedHat9

ダウンロード
2007/2/22現在 oepnssl-0.9.8dが最新の模様
wget http://www.openssl.org/source/openssl-0.9.8d.tar.g...

tar zxvf openssl-0.9.8d.tar.gz
make (configureないのね)

エラーその1

/usr/local/bin/perl bn_prime.pl >bn_prime.h
/bin/sh: line 1: /usr/local/bin/perl: そのようなファイルやディレクトリはありません

[原因]
サーバのperlが/usr/bin/perlであるため。

[解決方法]
Makefileを手で修正する

vi Makefile

PERL= /usr/local/bin/perl

PERL= /usr/bin/perl


キレイにした後、再度make
make clean
make


エラーその2

bn_prime.c: 関数 `BN_is_prime_fasttest_ex' 内:
bn_prime.c:265: `NUMPRIMES' が宣言されていません (この関数内で最初に利用)
bn_prime.c:265: (未宣言の各変数については、それが最初に現われたそれぞれの関数
bn_prime.c:265:  に対して一度だけ報告されます。)
bn_prime.c:266: `primes' が宣言されていません (この関数内で最初に利用)
bn_prime.c: 関数 `probable_prime' 内:
bn_prime.c:380: `NUMPRIMES' が宣言されていません (この関数内で最初に利用)
bn_prime.c:387: `primes' が宣言されていません (この関数内で最初に利用)
bn_prime.c: 関数 `probable_prime_dh' 内:
bn_prime.c:428: `NUMPRIMES' が宣言されていません (この関数内で最初に利用)
bn_prime.c:431: `primes' が宣言されていません (この関数内で最初に利用)
bn_prime.c: 関数 `probable_prime_dh_safe' 内:
bn_prime.c:476: `NUMPRIMES' が宣言されていません (この関数内で最初に利用)
bn_prime.c:481: `primes' が宣言されていません (この関数内で最初に利用)
make[2]: *** [bn_prime.o] エラー 1
make[2]: 出ます ディレクトリ `/home/work/openssl-0.9.8d/crypto/bn'
make[1]: *** [subdirs] エラー 1
make[1]: 出ます ディレクトリ `/home/work/openssl-0.9.8d/crypto'
make: *** [build_crypto] エラー 1

わ、分からん(´Д`;)


あ・・ configureは無かったが configがあった。
これやればエラーその1で手動でMakefile直す必要がなかった。

config
make

駄目だ。エラーその2は出続ける。
openssl-develなどを入れると良さそうだが、こんな時に限ってyumが旨く動かない。

[原因]


[解決方法]
未解決
opensslのバージョンを0.9.8cにしたら何事もなくインストールできました。
0.9.8dの何が悪いのだろうか。


やり直し

0.9.8cをダウンロードし直して、インストール
※ 2007/5/18 oepnssl-0.9.8eが出ていたので試してみましたが、
  こちらもすんなりインストールできました。

config
make
make test
make install

すんなり行くもんですね。。。


問題その1

config時に何もオプションを指定しなかったため、デフォルトの/usr/local/sslにインストールされた。
 /usr/local/ssl/bin/openssl

既存のopensslが/usr/bin/opensslとしてあるので、できればそこにインストールしたい。
 --openssldir, --plefixなどのオプションを使ってインストール箇所の変更をしようと思ったが、
/usr/local/sslでまとまってるほうが分かりやすいと考え、シンボリックリンクを張ることにした。

既存opensslのバックアップ / 削除
cp -p openssl openssl.bak
rm openssl

シンボリックリンク
ln -s /usr/local/ssl/bin/openssl openssl

確認
ls -l openssl

lrwxrwxrwx 1 root root 26 2月 24 03:05 openssl -> /usr/local/ssl/bin/openssl



秘密鍵の作成

ようやく秘密鍵の作成です。
本来ならばdes3等のオプションをつけるべきかもしれませんが、
Apacheが起動するたびにパスワードを尋ねられてしまい厄介なので、簡単な鍵を作成します。
鍵の名前はサーバ名です。[kris]

openssl genrsa -out kris.key 1024
Generating RSA private key, 1024 bit long modulus
..........................++++++
................++++++

ls -l
-rw-r--r--    1 root     root          887  2月 24 16:05 kris.key

できました。

CSRの作成

CSRの作成をします。ベリサイン、ジオトラスト等の証明書発行機関から証明書を入手するための元ファイルです。
公開サービスようではないので、今回は特に他の証明機関を使用しません。

openssl req -new -key kris.key -out kris.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:''hogehoge''
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Private_CA
Organizational Unit Name (eg, section) []:Private_CA
Common Name (eg, YOUR name) []:Admin
Email Address []:xxxxxx@xxxxx.xxx.jp

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:


ls -l
-rw-r--r--    1 root     root          700  2月 24 16:21 kris.csr
-rw-r--r--    1 root     root          887  2月 24 16:05 kris.key

CSRが出来ています。

CSRの内容を確認するには以下のコマンドで。
自分の入力が正しく反映されているかどうか確認しましょう。

openssl req -noout -text -in kris.csr


証明書の発行

自分で証明書を発行します。何の証明だって感じですが:-)

openssl x509 -in kris.csr -out kris.pem -req -signkey kris.key -days 365

Signature ok


ls -l
-rw-r--r--    1 root     root          700  2月 24 16:21 kris.csr
-rw-r--r--    1 root     root          887  2月 24 16:05 kris.key
-rw-r--r--    1 root     root          948  2月 24 23:59 kris.pem


これで完了です。
あとはapacheで使うなり、FTPをTLS/SSL対応にしてみたりと。
2007年05月19日(土) 01:13:21 Modified by glass57




スマートフォン版で見る