apache+SSL設定

apacheを使ってWEBサーバを構築はよく記事も見るのでSSL通信をメインに記載しています。

構築時に入っていれば下記のインストールは不要です。
apacheのインストール
# yum install httpd

apache用のSSLモジュールをインストール
# yum install mod_ssl

opensslのインストール
# yum install openssl

一通りインストールが終わったらSSL認証の証明書を作成していきます。

まずサーバ承継書作成用のディレクトリに移動します。
# cd /etc/pki/tls/certs/

Makefileで有効期限を365日になっているので3650日にする。有効期限は任意の値でいいですが1年じゃ短いのでとりあえず10年に
# vi Makefile
↓365を3650にする
/usr/bin/openssl req $(UTF8) -newkey rsa:$(PRIVATE_KEY_BITS) -keyout $$PEM1 -nodes -x509 -days 3650 -out $$PEM2 -set_serial $(SERIAL) ; \

サーバ用秘密鍵と証明書を作成します。
# make server.crt
umask 77 ; \
/usr/bin/openssl genrsa -des3 2048 > server.key
Generating RSA private key, 2048 bit long modulus
…………+++
……..+++
e is 65537 (0x10001)
Enter pass phrase: ←パスワード入力
Verifying – Enter pass phrase: ←パスワード確認
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -x509 -days 365 -out server.crt -set_serial 0
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]:Kanagawa ←都道府県
Locality Name (eg, city) [Newbury]:Kawasaki ←市町村
Organization Name (eg, company) [My Company Ltd]:nekofamily.ddo.jp ←会社、個人なら何でもいい
Organizational Unit Name (eg, section) []: ←部署?ここは空でいい
Common Name (eg, your name or your server’s hostname) []:nekofamily.ddo.jp ←サーバ名
Email Address []:nekomaster@nekofamily.ddo.jp ←管理者メールアドレス

鍵を作成したらそのままだとWEBサーバ起動時にパスワードを聞かれるのでサーバ用秘密鍵を削除します。
# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: ←パスワード入力
writing RSA key

apacheのSSL設定で証明書の指定を先ほど作ったファイルに変更します。
またドキュメントルートを有効にします。
# vi /etc/httpd/conf.d/ssl.conf
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/pki/tls/certs/server.crt ← サーバー用証明書を指定

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/pki/tls/certs/server.key ← サーバー用秘密鍵を指定

#DocumentRoot “/var/www/html” ←コメントアウトしている部分を解除

DocumentRoot “/var/www/html”

後はapacheを再起動すれば設定が反映されます。
# /etc/init.d/httpd restart

注意事項
iptablesで443ポートを許可していない場合は許可して下さい。
ルータ等で443ポートを解放していなければ解放して下さい。

PS.
ちなみにこのサイトもSSL通信対応です。

コメントする