SSLの最近のブログ記事

SSL備忘録

| コメント(0)
SSL設定

* csrを作る

- opensslをインストールしておく (apt-get install openssl)
$ sudo apt-get install openssl

- ssl keyを保存するディレクトリを作成
$ cd /etc/apache2
$ sudo mkdir ssl
$ cd ssl

- passphrase関連の準備
使用するパスワードをpassphraseに保存し、sslpasscat用のshellを準備
$ sudo touch passphrase
$ sudo echo 'パスワード' > passphrase
$ sudo touch sslpasscat

-- sslpasscatのファイルの中身 --
#!/bin/bash
cat /etc/apache2/ssl/passphrase
-- ここまで --

実行権限を与える
$ sudo chmod 755 sslpasscat

- keyを生成する(パスワードは上記のpassphraseに記入したもの)
$ sudo openssl genrsa -des3 -out s.ドメイン名.key 1024

- 上記で作ったキーでcsrを生成する
$ sudo openssl req -new -key s.ドメイン名.key -out s.ドメイン名.csr

入力項目:
国: JP
地区: Tokyo
市区: Minato-ku
組織: ABC, Inc.
部署: Tech
common name: s.ドメイン名

入力後に聞かれるchallenge passはblank(無視)する

- 入力項目の確認方法
$ sudo openssl req -noout -text -in s.ドメイン名.csr

- 最後に、ここで生成したcsrを使って、rapidss.comからcrtを取得する

* crtを取得後

- apache2.2 common にある雛型を使いsslの設定ファイルの準備
$ sudo zcat /usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz > /etc/apache2/site-available/ssl

- 準備後、下記のコマンドでsslの設定準備
$ sudo /usr/sbin/a2ensite ssl
$ sudo /usr/sbin/a2enmod ssl

- /etc/apache2/site-enabled/sslの設定

# sslpasscatの準備
SSLPassPhraseDialog exec:/etc/apache2/ssl/sslpasscat

# vhを明示的に指定


# ドキュメントルートを指定
DocumentRoot "/home/www/ドメイン名/production/document_root"

# common nameをServerNameに指定
ServerName s.ドメイン名:443

# ドメイン取得時に利用したドメイン管理メールを指定
ServerAdmin ssladmin@ドメイン名

# sslのerrorとaccessログを明示的に指定
ErrorLog /var/log/apache2/s.ドメイン名-error_log
TransferLog /var/log/apache2/s.ドメイン名-access_log

# crtを指定
SSLCertificateFile /etc/apache2/ssl/s.ドメイン名.crt

* sslのコンフィグ



DocumentRoot /home/www/ドメイン名/production/document_root
ErrorLog /var/log/apache2/s.ドメイン名-error.log
TransferLog /var/log/apache2/s.ドメイン名-access_log

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile /etc/apache2/ssl/s.ドメイン名.crt
SSLCertificateKeyFile /etc/apache2/ssl/s.ドメイン名.key


SSLOptions +StdEnvVars



Header set P3P "policyref='http://www.ドメイン名/p3p.xml', CP='CAO PSA OUR'"
Header set X-Powered-By "PHP5 ZendFramwork"


BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog /var/log/apache2/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

RequestHeader set X_FORWARDED_PROTO 'https'



ServerSignature Off

php_value session.save_path '/home/www/ドメイン名/production/application/sess'

RewriteEngine On

RewriteCond %{REQUEST_URI} (login|signup)
RewriteRule ^(login|signup) http://www.ドメイン名/error/mente [L,R]

RewriteCond %{REQUEST_URI} !(SSLを通さないページパス)
RewriteRule ^(.*)?$ http://www.ドメイン名/$1 [L,R]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1

Options FollowSymLinks
AllowOverride All
DirectoryIndex index.html index.php
AddType application/x-httpd-php .php





APACHE側の設定へ 特定のページのみSSLを使う

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} (login|signup)
RewriteRule ^(login|signup)(.*)?$ https://s.ドメイン名/$1$2 [L,R]

このアーカイブについて

このページには、過去に書かれたブログ記事のうちSSLカテゴリに属しているものが含まれています。

前のカテゴリはPOSTFIXです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。