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