2001/11/24
バージョン   OpenSSL 0.9.6b
OS   RedHat 7.0J (Linux 2.2.16-22)
ホームページ   http://www.openssl.org/
ダウンロード   http://www.openssl.org/source/

OpenSSLはフリーのSSL実装で、mod_sslやApache-SSL、あるいはOpenSSHなどで必要になります。ApacheでSSLを使いたい場合は、OpenSSLのほかに、mod_sslまたはApache-SSLを導入する必要があります。

OpenSSLのインストール

INSTALLの手順通りコンパイルします。

$ tar xvfz openssl-0.9.6b.tar.gz

$ cd openssl-0.9.6b
$ ./config

$ make

$ make test

rootになってインストールします。

$ su

# make install

鍵の作成とサイト証明書の発行

パスフレーズで保護された秘密鍵を生成します。

$ su

# cd /usr/local/ssl

# bin/openssl genrsa -des 1024 > private/key.pem
1112 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
.+++++
..............+++++
e is 65537 (0x10001)
Enter PEM pass phrase:(パスフレーズ入力)
Verifying password - Enter PEM pass phrase:(パスフレーズ再入力)

生成される秘密鍵(/usr/local/ssl/private/key.pem)は以下のようなものです。

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-CBC,8503D35E9CBA1683

ETK89zqOVTKFmUTKNgHSbKhsUgKegGp6lluKk8EC6HyIMFm+1U8qwdv65jHzbzjX
LCOcBDE5DkFc/OAVzBx13XSdXyj2BcaqIRLuFbIsmXvepZ1LOtkZKxLuMk0JLUs4
kdjmlZnG6YUArP8m+SiZd4QBsvLnoFTH64AHl+0SB1Sv2FHdZK6yCJ+xqktZpwj8
0JkEGY0xAEL4Gy0/kF6Iv7h+A8bA0iNwVHigkIv8tQQR/xbh6MPnUPtdeKxmwcgP
RwYUfP6R9kw0qiPHna3nW+ZpH+rMIGfUlRl0azLBI4SmoKdpsMtjvwer+mUezFY4
CD7x4QJi1L6PyyDs7pDZCj33fOOCyMWVjLYFsNQJEWDCqf+g5QSGyJH0AFBozwSp
zSMOwy1vMtbFKtKG9YV+ghCx7GikNzBUgaBSl8/zri5st/UiGjjPja609mwSWiHC
E+FeeeG24giBch5H/bhhipdqG6Q52OM/PtrpgZYhio/ZgHn+K81GwA4N2I8DzwEl
9+z5WaJg8ZhjPTG5ULAtG4W0wYiKqpwtB/zBFyVyitwuqM4RFZ3GUkCkLq6HaufW
RawIivGqx1rr51WZR8bsGBDE01znKbq09YV92Cp1rYYDJSqSmInJPztDOTAi9VBN
TNTS5sQFtTK3bvennxas+r/WOs/67Qwu4l0b/iXC0v9oTZkrIuHwIxQhn2wz5gDk
bA4AnFIWGR8SQCrjNwq2xR/2r8MV70Kq01AgQuatBpkAIEqKKA7Af05BYDQ58ExC
qicpqkAO/kb7LfcIKis2MEP6nEw2gC77ugX1a5uKB0q3OWnUb1BTLA==
-----END RSA PRIVATE KEY-----

このようにして作成した鍵をApacheで使用すると、Apacheの起動時に毎回パスフレーズを聞かれます。自動起動させる場合は邪魔な場合は、鍵からパスフレーズを削除します。(もちろんセキュリティ上は毎回パスフレーズを入力するほうが望ましいですが)

# bin/openssl rsa -in private/key.pem -out private/key.pem
read RSA private key
Enter PEM pass phrase:(パスフレーズ入力)
writing RSA private key

次に、CSRを作ります。CSRとは、サイト証明書を発行するためのリクエストです。(-daysオプションで証明書の有効期限を設定できます)

# bin/openssl req -new -days 365 -key private/key.pem -out csr.pem
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) []:Chofu-shi
Organization Name (eg, company) [Internet Widgits Pty Ltd]:BitArts,Inc.
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:sv.pixy.ne.jp
Email Address []:[email protected]

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

生成されるCSR(/usr/local/ssl/csr.pem)は以下のようなものです。

-----BEGIN CERTIFICATE REQUEST-----
MIIBcTCB2wIBADAyMQswCQYDVQQGEwJKUDEOMAwGA1UECBMFVG9reW8xEzARBgNV
BAoTCkxpbmttYW5hZ2UwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANASNMRG
cqLOS2Lx7ZtGqQtQsVi17MWqU0uztIPi8XOAVr80yEj9zss4cgc3cURag+1R6TGG
/A4Ts/P2k1A6O1NrIiMQn7bIAh2bgGYo7bYFwvsv8Zn3eNbGsCVlNELr1p5mFwXT
Bkt3e7HTSNBf5JKr8e7X6Ld5/4+Oq7y1yaJRAgMBAAGgADANBgkqhkiG9w0BAQQF
AAOBgQAEVU1O7U1r+ktMtQCzQ/0F4FtX0BYGUQTUfIOBZrVQoPgjQKNf5pS4GJQ/
dxBMDihzAfl3adrGRLdSV5v1uOSCliPFxfFzF3S0rg/zlrQdOS3jjSSWZcg/9hnb
ca2Gho8pm7FZnuPXgrpImVZixhplGNG2F9UPlx8Fb2YuQ9Wbiw==
-----END CERTIFICATE REQUEST-----

このCSRをベリサインなどの認証局に送ると以下のようなサキュアサーバID(サイト証明書)が発行されます。これをcerts/cert.pemと言う名前で保存します。

認証局を使わず、自分で署名する場合は、以下のようにします。

# bin/openssl x509 \
-in csr.pem -out certs/cert.pem -req \
-signkey private/key.pem -days 365

サイト証明書(/usr/local/certs/cert.pem)は以下のようなものです。

-----BEGIN CERTIFICATE-----
MIIB0zCCATwCAQAwDQYJKoZIhvcNAQEEBQAwMjELMAkGA1UEBhMCSlAxDjAMBgNV
BAgTBVRva3lvMRMwEQYDVQQKEwpMaW5rbWFuYWdlMB4XDTk5MTAyNjA3MzgyMVoX
DTk5MTEyNTA3MzgyMVowMjELMAkGA1UEBhMCSlAxDjAMBgNVBAgTBVRva3lvMRMw
EQYDVQQKEwpMaW5rbWFuYWdlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQ
EjTERnKizkti8e2bRqkLULFYtezFqlNLs7SD4vFzgFa/NMhI/c7LOHIHN3FEWoPt
UekxhvwOE7Pz9pNQOjtTayIjEJ+2yAIdm4BmKO22BcL7L/GZ93jWxrAlZTRC69ae
ZhcF0wZLd3ux00jQX+SSq/Hu1+i3ef+Pjqu8tcmiUQIDAQABMA0GCSqGSIb3DQEB
BAUAA4GBAC+3WucVbNdHEFnKwwwxOORezYzsqCIV5wwMkX4kzADyJd8Nhop5tQzX
eaq1X54iYq22nFNI3LejQl9G+XtcbTgRvkiaCG3PfLB663t3f5UFHGZzA3yHxOjZ
jkVl9aco4j+b0fiEA7wGMKwttmktcR4JdrQbsJm5BzaxCwst2GoB
-----END CERTIFICATE-----