サーバー管理の現場において今まで役に立ったことをまとめた小ネタ集です。お役に立てれば幸いです。なお、不完全な情報や時代遅れになってしまった情報もあるかもしれませんが何卒ご了承ください。

OpenSSL : httpsを使えるようにする方法

作業例(CentOS6での例)

openSSLが入っていない場合はインストールしましょう。
yum install openssl
まずは秘密鍵を作りましょう。
openssl genrsa -des3 2048 > server.key
pass phraseを聞かれますので、任意の文字列を入れてください。これは後で必要になりますので手元にメモしておいてください。
これにより出来上がったserver.keyが秘密鍵ファイルです。
テキストエディタ等で開いてみると、
-----BEGIN RSA PRIVATE KEY-----
で始まる内容になっています。
秘密鍵は大切なファイルですので、バックアップのうえ、適切な権限にて保管してください。
例)chmod 600 server.key
CSRファイルを作りましょう。
openssl req -new -key server.key -out server.csr
を実行すると対話形式での入力となります。
例えばこんな感じです。

Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tochigi
Locality Name (eg, city) []:Utsunomiya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:nmox company
Organizational Unit Name (eg, section) []:Soumu
Common Name (eg, YOUR name) []:nmox.net
Email Address []:(省略)
A challenge password []:(省略)
An optional company name []:(省略)

(省略)としているところは何も入力しなくてよいです。
これにより出来上がったserver.csrがCSRファイルです。
テキストエディタ等で開いてみると、
-----BEGIN CERTIFICATE REQUEST-----
で始まる内容になっています。

CSRファイルを提出してサーバー証明書を手に入れましょう。
サーバー証明書販売サイト等にCSRファイルを提出して、サーバー証明書を購入しましょう。
手順はサイトの説明に応じてください。
発行までには時間がかかる場合があります。
サーバー証明書をインストールしましょう。
無事サーバー証明書が発行されたら、サーバー内に置きましょう。
盗み見られないよう、置き場所は外からアクセスしにくい場所にしてください。
中間証明書が発行されることもありますので、同様にサーバー内に置きましょう。

apacheの設定ファイルに上記ファイルのパスを記述してください。
vi /etc/httpd/conf.d/ssl.conf
などで編集に入り、
SSLCertificateFile /etc/pki/・・・・server.crt
のようにして証明書ファイルのパスを、
SSLCertificateKeyFile /etc/pki/・・・・server.key
のようにして秘密鍵ファイルのパスを、
SSLCertificateChainFile /etc/pki/・・・・server.ca-bundle
のようにして中間証明書ファイルのパスを、それぞれ記述しましょう。
Apacheを再起動しましょう。
CentOS6なら、
/etc/rc.d/init.d/httpd restart
CentOS7なら、
systemctl restart httpd
等、環境に合わせて再起動してください。
起動直後にpass phraseを聞かれますので、秘密鍵を作った時に入力した文字列を入れてください。
(必要なら)pass phrase入力を省略する処置をおこないましょう。
頻繁に再起動をする環境ですと毎回pass phraseを入力するのは面倒なので、省略する処置をおこないましょう。
openssl rsa -in server.key -out server-nopass.key
を実行して出来上がったserver-nopass.keyを秘密鍵ファイルとして上記SSLCertificateFileに記述するとpass phrase入力を省略することができます。