*

SSL/TLS について調べたことまとめ

公開日: : 最終更新日:2017/10/31 Apache

SSL/TLSの流れ

  1. クライアント => サーバー:HTTPSでアクセス
  2. サーバー => クライアント:X.509証明書を送付
  3. クライアント => サーバー:証明書の信頼性を判断*1
                 乱数を生成し、証明書から取りだしたサーバーの公開鍵で暗号化
                 暗号化された乱数を送付、乱数を元に共通鍵を作成
  4. サーバー => クライアント:乱数を元に共通鍵を作成
  5. クライアント <=> サーバー:共通鍵暗号方式を使ってデータを暗号化して通信
*1 サーバーの信頼性をどのようにして判断するか

事前に構築されている環境
 証明機関(CA)が証明書を発行している。
 証明機関にサーバは登録している。
 証明機関はクライアントに証明書と公開鍵(証明書内に記載されている)を渡す。(クライアントのブラウザが自動的にダウンロードしているので実際に操作している人は気づかない)
 証明機関は登録されたサーバーに証明書(クライアントに渡したもの)と秘密鍵を渡す。
証明の方法
 サーバーは証明書をハッシュ値化したものに秘密鍵を用いて暗号化する。それを送る。受け取ったクライアントは証明機関から受け取っていた公開鍵を用いて解読しハッシュ値(A)の状態に戻す。一方、クライアントは証明機関から受け取っていた証明書をハッシュ化(B)する。
 (A)と(B)を比較してぴったりマッチすれば、「サーバーは証明機関に登録された信頼できるサーバーである」とクライアントは判断できる。

実際の設定方法
###SSLサーバ証明書を自分署名で作成しサーバ内に配置する
server.key :サーバで持つ秘密鍵、鍵長ビット数を決める
server.csr :Common Name、サーバ名、組織名などの情報が付加される、署名ように使われる
server.crt :署名されたファイル、有効期限の情報を付加できる

###Apache2.4で使えるように設定する

セキュリティ設定
xxxx@vbox:~$ openssl genrsa 2048 > server.key
Generating RSA private key, 2048 bit long modulus
……………….+++
……………………………………..+++
e is 65537 (0x10001)
xxxx@vbox:~$ openssl req -new -key server.key > server.csr
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]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:vbox
Email Address []:

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

xxxx@vbox:~$ openssl x509 -req -signkey server.key < server.csr > server.crt
Signature ok
subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=vbox
Getting Private key

他にも証明書の有効期限が切れていたり,証明書のCN(コモンネーム)と実際にアクセスしているドメインが異なっている場合にも警告が発生します。

cd /etc/apache2/conf-available
cp -i security.conf{,.org}
vim security.conf
以下に書換え

security.conf
ServerTokens Prod
ServerSignature Off
サイト設定

cd /etc/apache2/sites-available
cp -i 000-default.conf [any name].conf
vim [any name].conf
以下を書換え

DocumentRoot [ドキュメントルート]
以下を追記


Require all granted

サイト設定(SSL)

cd /etc/apache2/sites-available
cp -i 000-default-ssl.conf [any name]-ssl.conf
vim [any name]-ssl.conf
以下を書換え

DocumentRoot [ドキュメントルート]
以下を追記


Require all granted

default-ssl.confも書き換え必要みたい・・

cp -i default-ssl.conf{,.org}
vim default-ssl.conf
以下を書換え

DocumentRoot [ドキュメントルート]
以下を追記


Require all granted

SSLCertificateFile /etc/ssl/certs/server1023.crt
SSLCertificateKeyFile /etc/ssl/private/server1023.key

SSL関連のモジュールを有効化
#/etc/apache2/mods-available/ssl.confを適用
a2enmod ssl

#/etc/apache2/sites-available/default-ssl.confを適用
a2ensite default-ssl

#Apache起動
service apache2 start

admax_area



関連記事

記事はありませんでした

admax_area



Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

admax_area



PAGE TOP ↑