EC2とApacheでSSL通信(RapidSSL)を行う
SSL暗号化通信を行うまでのサーバ設定
HTTPではセキュリティに問題があるということで,今回は初めてSSL暗号化通信の設定を行ってみたいと思います.
SSL通信とは?
まずSSL通信を使うと嬉しいこと.
やりとりされるデータを暗号化できる
Webサイトの運営者が本物であるか認証できる
アクセス先が安全なWebサイトであることを保証してくれるものと考えるとわかりやすい.
SSL通信で行われている「共通鍵暗号方式」や「公開鍵暗号方式」などの詳しい仕組みの解説は他を参考にしていただくとして,
ここではサーバ上での設定方法について調べた結果をまとめていきます.
(参考)SSLとは?仕組みから、共有・独自SSLの違い、証明書についてが分かるまとめ
サーバ上の設定詳細
開発環境
EC2(Amazon Linux AMI)
Apache2.2.31
(参考)さくらのVPS(CentOS 5.5)に RapidSSL をインストールするまでのメモ
SSL通信を実現するためにはOpenSSLというライブラリを使います.
EC2にはデフォルトでインストールされていると思いますが念のためコマンドで確認
$ rpm -q openssl
ApacheをSSLに対応させるためのモジュールをインストール
$ yum -y install mod_ssl
秘密鍵を作成.これを使って暗号化して送られてきたデータを複合化します.
RapidSSLの認証書が2048bitなので2048を指定する.
$ cd /etc/pki/tls/private/
$ openssl genrsa -des3 -out keyname.key 2048
秘密鍵からCSRを生成する.
CSRファイルとは,SSL通信に利用する公開鍵暗号系の公開鍵に,コモンネームなどの情報を付加したものです.
これが認証局に提出する署名リクエスト(Certificate Signing Request)となります.
$ openssl req -new -key server.key -out csrname.csr
CSRをRapid-SSL.jpに送信して、証明書発行を申し込む.
そして受け取った認証用ファイルを,申請対象のFQDN(コモンネーム)配下に置くことで
認証局がファイルを確認して証明書を発行します.
(参考)ファイル認証について
メール認証後,サーバ証明書が送られてくるのでCRTファイルとしてサーバにあげます.
# crtファイルを作成してコピー
$ cd /etc/pki/tls/certs/
$ touch crtname.crt
$ vim crtname.crt
サーバ証明書はセキュリティ上の理由等により複数階層による認証を行っているため,
ここから中間CA証明書をダウンロードしてサーバにあげます,
# 中間CA証明書の中身をコピー
$ cd /etc/pki/tls/certs/
$ touch rapidssl-chain.crt
$ vim rapidssl-chain.crt
ここから,バーチャルホストを設定していない場合はssl.confを直接編集します.
$ vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/crtname.crt
SSLCertificateKeyFile /etc/pki/tls/private/keyname.key
DocumentRoot "/var/www/html"
ServerName www.example.com:443
バーチャルホストを設定している場合はその設定ファイルを編集します.
$ vim /etc/httpd/conf.d/virtualhost.conf
NameVirtualhost *:443
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /path/to/documentroot
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/crtname.crt
SSLCertificateKeyFile /etc/pki/tls/private/keyname.key
SSLCertificateChainFile /etc/pki/tls/certs/rapidssl-chain.crt
ErrorLog logs/ssl.error.log
CustomLog logs/ssl.access.log combined env=!no_log
</VirtualHost>
Apacheのconfigファイルを編集したのでhttpdを再起動.
$ service httpd restart
以上で快適なSSL通信ライフを送れるはず!
あとは,HTTPからHTTPSへのリダイレクトの設定などをするといいかも.
Author And Source
この問題について(EC2とApacheでSSL通信(RapidSSL)を行う), 我々は、より多くの情報をここで見つけました https://qiita.com/nszknao/items/b4661452c31a5c6b00d9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .