簡単!SSL自己証明書を作成する。




投稿日:

Apache動かしてて、たまに必要になる自己証明書作成を簡単にまとめておきます。
出来る限り簡素化しています。

■ 準備「openssl」と「mod_ssl」のインストール

# yum install openssl openssl-devel mod_ssl


■ 証明書作成

# cd /etc/pki/tls/certs



【秘密鍵(server.key)の作成】

# openssl genrsa -aes128 1024 > server.key
Generating RSA private key, 1024 bit long modulus
....................++++++
........++++++
e is 65537 (0x10001)
Enter pass phrase:パスワード
Verifying - Enter pass phrase:パスワード



【公開鍵(server.csr)の作成】

# openssl req -new -key server.key > server.csr
Enter pass phrase for server.key:パスワード
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) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Tokyo
Organization Name (eg, company) [My Company Ltd]:yourCompany Ltd
Organizational Unit Name (eg, section) []:任意
Common Name (eg, your name or your server's hostname) []:サイトのドメイン
Email Address []:空白

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



【デジタル証明書(server.crt)の作成】

# openssl x509 -in server.csr -days 3650 -req -signkey server.key > server.crt
Signature ok
subject=/C=JP/ST=Tokyo/L=Tokyo/O=yourcompany Ltd/OU=system/CN=ドメイン
Getting Private key
Enter pass phrase for server.key:パスワード



【Apacheで利用するために、パスフレーズの削除】

# cp -p server.key server.key.bak

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:パスワード
writing RSA key

ここまでで、こんな感じで仕上がっている。
# ls -la
-rw-rw-r-- 1 root root    904 Dec  4 11:15 server.crt
-rw-rw-r-- 1 root root    680 Dec  4 11:10 server.csr
-rw-rw-r-- 1 root root    887 Dec  4 11:24 server.key



【パーミッションの設定/秘密鍵の移動】

# chmod 400 server.crt server.key server.csr

# ls -la
-r-------- 1 root root    904 Dec  4 11:15 server.crt
-r-------- 1 root root    680 Dec  4 11:10 server.csr
-r-------- 1 root root    887 Dec  4 11:24 server.key



【秘密鍵の移動】

# mv /etc/pki/tls/certs/server.key /etc/pki/tls/private/server.key

ついでにApache設定

/etc/httpd/conf/httpd.conf に書き加えても良いが、
yumでsslをインストールした場合、デフォルトでssl.confに設定が書かれている。
重複しないように注意しよう。