SSLを入れると安心感がまして、
既に導入してますよー、
それで社内でSSL変更しようかって話になったけど、上の人達にSSLって説明してもわからないので調べてみました。
そもそも、sslって何?
SSLを利用しているサイトは、httpsから始まるURLで、
例えば、ユーザーが、企業に問合せをする際に、問合せフォームに名前とメールアドレスを記載したとする。(クライアントPC)
その名前とメールアドレスは、まだ手元のPCやスマフォにあるので、企業側(サーバ)には来ていない。
その手元の情報を企業側に送る時、送る情報を暗号化するのがSSL。
暗号化するのにsslの利用料金を払っているのではなく、
SSLには、オンライン認証と実在性認証という、
実際性認証は、登記謄本などの証明が必要。
sslを実際に入れようって流れは以下の様な流れ。
今回は、簡単で安いドメイン認証で行いました。
手順は以下。
1:秘密鍵の作成
2:CSRの作成
2:sslに申込み、料金支払い
3:証明書かssl会社から、メールで送られてくる
4:送られてきた証明書を、サーバーに設定
例)今回の環境
コモンネーム | www.sample.com |
作成する秘密鍵のファイル名 | sample.key |
作成するCSRのファイル名 | sample.csr |
秘密鍵のディレクトリ | /etc/httpd/conf/ssl/ |
CSRのディレクトリ | /etc/httpd/conf/ssl/ |
もしurlをhttps://sample.comにしたい場合、CSRに入力するコモンネームはsample.comにします。
www.sample.comで入力した場合は、https://www.sample.com にしないとエラーになります。
1:秘密鍵の作成
OpenSSLがインストールされているか確認。
# openssl genrsa -out sample.key 2048
秘密鍵のディレクトリに移動し、秘密鍵( sample.key)を作成
# cd /etc/httpd/conf/ssl/ # openssl genrsa -out sample.key 2048 パスワードなし # openssl genrsa -des3 -out sample.key 2048 パスワードあり
パスワードありで作成すると、サーバー起動毎にパスワードを求められます。なので、私はなしで作成します。
2:CSRの発行方法
CSR(Certificate Signing Request)とは、SSL証明書を発行するための証明書要求のこと。
これがないとSSLを取れません。
発行方法は、以下のコマンドを打ちます。
# openssl req -new -key /etc/httpd/conf/ssl.key/sample.key -out /etc/httpd/conf/ssl.csr/sample.csr
上記のコマンドを入れると、CSRの入力項目が聞かれます。
内容 入力例
コモンネーム(CN):実際に接続する URL の FQDN
(例)https://www.sanmple.com/index.html の場合は「 www.sample.co.jp」を記入
- 組織単位名(OU) 部署名(任意)
- 組織名(O) 申請組織の名称(英名)
- 市町村名(L)
- 都道府県名(S/ST)
- 国名(C) 申請組織の国名
秘密鍵の作成・CSRの作成が面倒な場合は、下記のサイトから作成が簡単にできます。作成後は秘密鍵は任意の場所(ここでは/etc/httpd/conf/ssl/ としています)に保存します。
SSL証明書・サーバ証明書ならSecureStage-自動CSR・秘密鍵作成-
3:sslに申込み、料金支払い
SSLの会社によって値段は様々。
安いという、ラピッドSSLに決定。
ちなみにラピッドsslを扱う代理店は多数あり、
エンジョイダイレクトというところで、1240円(年間)
4:証明書かssl会社から、メールで送られてくる
支払いが完了すると、、whois上のドメイン管理者のメールにSSLの会社から確認のメールが届きます。そこにURLが付いているので、クリックします。(代理店からのメールも来て、その後すぐに来ました。)
5:送られてきた証明書を、サーバーに設定
確認メールのクリック完了後、証明書がメールで送られてきます。
添付ファイルではなく、テキストなのでコピーしてテキストファイルに貼り付けて保存します。
証明書をserver.cer、中間証明書はinter.crtといファイルで保存して、証明書と中間証明書をサーバーの任意の場所にUPします。
UP完了したら、SSL設定ファイルにUPした場所をフルパスで記述します。
ssl.confファイルに、以下の様な形式でフルパスを記述します。
証明書 SSLCertificateFile /etc/httpd/conf/ssl/server.cer
秘密鍵 SSLCertificateKeyFile /etc/httpd/conf/ssl/myserver.key
中間証明書 SSLCertificateChainFile /etc/httpd/conf/ssl/inter.crt
<VirtualHost xxx.xxx.xxx.xxx:443>
DocumentRoot “/var/www/html”
ServerName sample.com
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl/server.cer
SSLCertificateChainFile /etc/httpd/conf/ssl/inter.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/myserver.key
</VirtualHost>
設定ファイルに記述が完了したら、サーバーを再起動させればOKです。
# apachectl stop # apachectl start
ちなみに、SSL証明書を取らないくても、自前でhttpsにすることも出来ます。でもこの場合、アクセスするとこんな画面になります。(自前でSSL証明書の発行サーバー立てて回避する方法もあります。)
なので、SSL証明書をとらない自前のSSLは仲間内でしかみないサイト等に利用するのが良いかと思います。
コメント