本日も千鳥足


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



PageTop

ショッピングカートやユーザー登録などのサイトでは必須の暗号化通信。
Webで代表的なのは2つほどあります。
まず
SSL【Secure Socket Layer】

Netscape Communications社が開発した
インターネット上で情報を暗号化して送受信するプロトコル。
現在インターネットで広く使われているWWWやFTPなどのデータを暗号化し
プライバシーに関わる情報やクレジットカード番号
企業秘密などを安全に送受信することができる。

SSLは公開鍵暗号や秘密鍵暗号、デジタル証明書
、ハッシュ関数などのセキュリティ技術を組み合わせ、データの盗聴や改ざん、なりすましを防ぐことができる。
OSI参照モデルではセッション層(第5層)とトランスポート層(第4層)の境界で動作し
HTTPやFTPなどの上位のプロトコルを利用するアプリケーションソフトからは
特に意識することなく透過的に利用することができる。
SSL 3.0をもとに若干の改良が加えられたTLS 1.0がRFC 2246としてIETFで標準化されている。



TLS【Transport Layer Security】

インターネット上で情報を暗号化して送受信するプロトコルの一つ
。現在インターネットで広く使われているWWWやFTPなどのデータを暗号化し
、プライバシーに関わる情報やクレジットカード番号、企業秘密などを安全に送受信することができる。
TLSは公開鍵暗号や秘密鍵暗号、デジタル証明書、ハッシュ関数などのセキュリティ技術を組み合わせ、
データの盗聴や改ざん、なりすましを防ぐことができる。
OSI参照モデルではトランスポート層(第4層)にあたり
HTTPやFTPなどの上位のプロトコルを利用するアプリケーションソフトからは
特に意識することなく透過的に利用することができる。
TLS 1.0はNetscape Communications社が開発したSSL 3.0をもとに若干の改良が加えられたもので
RFC 2246としてIETFで標準化されている。



いまやSSLはtwitterやMixiなども標準装備ですね。
そもそもSSLはHTTPが80番ポートを標準仕様にしているのに対して443番ポートを使用します。
一般のページがhttp://~なのに対してhttps://~でアクセスします。

Apache2でもyumなどでインストールすると
ssl.confというファイルが

/etc/httpd/conf.d/ssl.conf


に存在しているはずです。
このファイルを編集して設定します。


LoadModule ssl_module modules/mod_ssl.so

Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl


SSLPassPhraseDialog builtin

.
#SSLSessionCache dc:UNIX:/var/cache/mod_ssl/distcache
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300

SSLMutex default


SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random 512
#SSLRandomSeed connect file:/dev/random 512
#SSLRandomSeed connect file:/dev/urandom 512


SSLCryptoDevice builtin
#SSLCryptoDevice ubsec



# General setup for the virtual host, inherited from global configuration
DocumentRoot "/var/www/html"
ServerName www.example.com:443


# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key


#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt


#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt


#SSLVerifyClient require
#SSLVerifyDepth 10


#
#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#



#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire

SSLOptions +StdEnvVars


SSLOptions +StdEnvVars


SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


基本的にはhttpd.confと同じですが
設定するCAの証明書の場所を指定します。
サーバーのドメイン名をCAの証明書ドメインとあわせましょう。

CA証明書の取得は各CAでどうぞ。
有名どころCA

ベリサイン

グローバルサイン

セコムトラストシステムズ

サイバートラスト



プライベートCAを構築しても良いのですが、ユーザーに対する商売で使用するなら
上記認証局の証明書を使用するのが良いと思います。
プライベートCAでは使用するユーザーに証明書がインストールされていないと
警告がでますので。

また、基本的にバーチャルドメイン運用では
IPアドレスベースじゃないと複数の証明書を管理することは出来ません。

名前ベースのバーチャルホストでは複数のバーチャルドメインに対する
それぞれの証明書を割り当てる事が出来ないようです。

1台のサーバーで複数のSSLサイトを運営するならその数だけ
IPアドレスが必要になるという事ですね。




スポンサーリンク

関連スクラップ記事

関連エントリ抽出中...



PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。