Personal tools
You are here: Home 日々のメモ書き Topics Apache
OpenID Log in

OpenID Log in

 

Apache

Oct 05, 2009

SSL証明書でクライアント認証をする

by TANIGUCHI Takaki — last modified Oct 05, 2009 11:35 PM
Filed Under:

Apacheを使ってSSL証明書を使ってクライアント認証の実験をした。

まず次のものを用意する。

  • CA証明書
  • サーバSSL証明書 (PEMとKeyファイル)
  • クライアント証明書 (PKCS12)

一々手で用意するのも面倒なので TinyCA を使って作成した。TinyCAの使い方は省略。

クライアント証明書認証の概念をおおざっぱに説明すると サーバ側にクライアント証明書を見せて、サーバが証明書が正しい(CAに署名されている)ことを確認して、接続を許可するという流れになる。通常のSSL接続の設定に比べると、サーバ側にCA証明書の設定が必要になる。

サーバSSL証明書の設定

まずは通常のApache+SSLの設定をする。あまり詳細な説明はしない。他を参照すること。mod_sslを導入した上で設定ファイルを書く。この時点でPEMとKeyファイルをサーバにコピーした上で設定が必要となる。

SSLCertificateFile    /etc/ssl/apache/ssl-cert-ssltest.pem
SSLCertificateKeyFile /etc/ssl/apache/ssl-cert-ssltest.der

この時点でブラウザで接続すると通常は証明書が信頼できない云々のエラーが出る。そこでブラウザ側にCA証明書をインストールする。手順は略。ただし、この手順はセキュリティ的には書いてあったからそのままやるとか思ってると将来大変なことになるので注意。

この状態で接続するとSSL証明書に関するエラーは出なくなる。

クライアント証明書の設定

サーバ側にCA証明書をコピーする。これをApacheに設定した上でSSL証明書接続を要求する設定も追加する。

SSLCACertificateFile /etc/ssl/apache/SSLTESTCA-cacert.pem
SSLVerifyClient require

この状態で接続しようとしても接続できないことを確認する。

次にクライアント証明書をブラウザ側でインポートする。そのあと接続するとクライアント証明書を提示することの確認などがされて無事接続される。

環境変数のSSL_CLIENT_S_DN_CNに CommonName が入っている。これを利用してユーザーの確認をすればいい。

 

Jul 13, 2009

手元でdjangoをwsgiで動かす

by TANIGUCHI Takaki — last modified Jul 13, 2009 11:27 PM
Filed Under:

手元のPCでまともにDNSを動かしているわけではないのでちょっと工夫。

apacheを工夫というよりDNS(unbound)の工夫だな。

unbound.confに以下を追加。

local-zone: "local." static
local-data: "django.local. IN A 127.0.0.1"

とやりまして、django.localに対してVirtualHostを設定するという流れ。

Apacheのほうはwsgiを設定するところの肝心なところだけ再掲。

Alias /media "/usr/share/pyshared/django/contrib/admin/media"
<Directory "/usr/share/pyshared/django/contrib/admin/media">
Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
</Directory>

WSGIScriptAlias / "/home/takaki/src/django/myproject/apache/django_app.wsgi"

<Directory "/home/takaki/src/django/myproject/apache/django_app.wsgi">
Allow from all
</Directory>

Jan 25, 2009

fail2banでtrackback spamを切る話の続き

by TANIGUCHI Takaki — last modified Jan 25, 2009 11:36 PM
Filed Under:

正引きできないものはしゃーないのさ。

ApacheのログをIPで取るものと二つ取ることにした。次のようなもの apahceの設定に追加。combinedの%hを%aに変更。

CustomLog /var/log/apache2/ip-access.log "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

こっちのファイルをもとにbanするように設定。順調にbanしている。

Dec 09, 2008

mod_rewrite使っているときのDoS対処

by TANIGUCHI Takaki — last modified Dec 09, 2008 06:23 PM
Filed Under:

DoSでうざいので普通にDenyしていたんだが十分ではなかった。

ZopeのフロントエンドにApacheを使ってmod_rewriteでプロキシにして運用していた。DoSをしてくる馬鹿がいるのでDenyしておいたが、ただ、それでは403は返してもZope側にアクセスが伝わっていた。mod_rewriteのところでアクセスさせない対処をする。
RewriteCond %{REMOTE_HOST} .*\.svservers\.com$
RewriteRule ^/.* - [F]

Sep 11, 2008

GeoIPで国外を叩き出す方法

by TANIGUCHI Takaki — last modified Sep 11, 2008 11:22 AM
Filed Under:

join_formへのスパムがうざいので。

日本以外は叩き出すことにする。

<Location /join_form>
GeoIPEnable On

SetEnvIf GEOIP_COUNTRY_CODE JP AllowCountry
Deny from all
Allow from env=AllowCountry

</Location>
takaki's twitter
焼酎風味の水に500円も取ろうとはどういう店だ。 Mar 09, 2010 10:53 PM
ジョブカードなる糞エクセル方眼紙を埋め中。心が折れそうだ。 Mar 08, 2010 10:16 PM
Excel方眼紙がOOoで崩れるわけだが。 Mar 04, 2010 10:49 PM
嫌味言ってりゃ世の中良くなるわけでもなし Mar 04, 2010 10:06 PM
どう考えても風邪だがタイミングが悪すぎる Mar 02, 2010 11:51 PM
Affiliate