初心者も簡単ブログにコピペだけ!1クリック高単価7〜42円。登録無料最短1分でスタート。

ApacheでSSL通信を使う方法。(OpenSSL)

SSL通信に必要なもの

1:Apache Web Server
2:openssl
3:秘密鍵、証明書要求、証明書
4:httpd.confとhttpd-ssl.confの各種設定やコメントアウト作業

OpenSSLインストール

これが入ってないとSSLが使えないので、ターミナルで下記をコピペしてENTER。

openssl version

バージョンが返ってくればOK。

バージョンが出てこない人はOpenSSLをインストールしてから次に進みます。

httpd.confの設定

下記二つの設定が必要です。

1:コメントアウト

LoadModule ssl_module libexec/apache2/mod_ssl.so

2:Listen 80の前に443を追記

Listen 443
Listen 80

httpd-ssl.confの設定

DocumentRootとServerNameを環境に合わせて設定します。
ローカルの開発環境等であればhttpd.confと同じDocumentRootで問題ありません。

またhttpd-ssl.conf内の下記二つのパスは覚えておいてください。
次の手順で秘密鍵、証明書の2つを作成した後に下記に公開鍵と、証明書を置きます。

SSLCertificateFile “/private/etc/apache2/server.crt”
SSLCertificateKeyFile “/private/etc/apache2/server.key”

証明書を作る

opensslコマンドを使ってSSL自己証明を作成す手順。
1:秘密鍵をの作成

openssl genrsa -aes128 1024 > server.key

コマンドの説明:
opnessl コマンド genrsa RSA形式の秘密鍵作成 -aes128 128bitのAES形式で暗号化 1024 1024バイトの鍵 > server.key 出力
2:公開鍵の作成

openssl req -new -key server.key > server.csr

下記が表示されるので入力してENTERで進めていきます。

コマンドの説明:
openssl コマンド reqCSR ファイルを作成 -new 新規作成 -key server.key 秘密鍵ファイルを指定 > server.csr 出力

Enter pass phrase for server.key: 1で入力した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) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shinjuku,Shinjyuku-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:会社名
Organizational Unit Name (eg, section) []:会社の部署など
Common Name (eg, YOUR name) []:localhost
Email Address []:空白

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

上記後にserver.csrが作られます。

3:デジタル証明書の作成

openssl x509 -in server.csr -day365 -req -signkey server.key > server.crt

server.keyのパスフレーズを求められるので入力してENTER。

コマンドの説明:
openssl コマンド x509 x509形式の証明書 -in server.csrファイル指定 -days 365有効期限 -req 入力がCSRファイルであることを指定 -signkey秘密鍵ファイル指定 > server.crt 出力 

起動時に求められるパスワードを省略する

省略というよりあらかじめ復号化しておくことでパスフレーズ入力回避します。

mv server.key server.key.back
openssl rsa -in server.key.back > server.key

パスフレーズを入力してENTER

サーバー鍵と証明書を下記に移動

SSLCertificateFile “/private/etc/apache2/server.crt”
SSLCertificateKeyFile “/private/etc/apache2/server.key”

今回はあくまでもローカル開発環境にてopensslを使う方法なので商用や本番環境ではセキュリティ対策を怠らないようにしましょう。自己証明書は別名オレオレ証明といわれているものです。正規のSSL通信は第三者機関である認証局などを経由して作られるものです。

ダイレクト特集ページ用バナー(ダウンロード版)

初心者も簡単ブログにコピペだけ!1クリック高単価7〜42円。登録無料最短1分でスタート。