差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
mac:mac_os_x_v10.6でsubversionリポジトリのパスベース認証を行う [2011-02-20 01:30] Decomo |
mac:mac_os_x_v10.6でsubversionリポジトリのパスベース認証を行う [2011-05-31 00:55] Decomo |
||
---|---|---|---|
行 1: | 行 1: | ||
====== Mac OS X v10.6でSubversionリポジトリのパスベース認証を行う ====== | ====== Mac OS X v10.6でSubversionリポジトリのパスベース認証を行う ====== | ||
- | Snow Leopardからmod_dav_svnが標準で入っているようで、WebDAVを用いたSubversion環境を作りやすくなったっぽいので挑戦してみたメモ。 | + | Snow Leopardからmod_dav_svnが標準で入たようで、WebDAVを用いたSubversion環境を作りやすくなったっぽいので挑戦してみたメモ。 |
===== 前提条件 ===== | ===== 前提条件 ===== | ||
行 9: | 行 9: | ||
* プロジェクトごとにリポジトリを作り、プロジェクトごとにアクセス制御出来るようにする。 | * プロジェクトごとにリポジトリを作り、プロジェクトごとにアクセス制御出来るようにする。 | ||
* リポジトリ置き場:/ | * リポジトリ置き場:/ | ||
+ | * SVNサーバアドレス: | ||
===== httpd.confの編集 ===== | ===== httpd.confの編集 ===== | ||
- | / | + | < |
- | <code> | + | <file> |
- | $ sudo emacs / | + | |
LoadModule dav_svn_module libexec/ | LoadModule dav_svn_module libexec/ | ||
LoadModule authz_svn_module libexec/ | LoadModule authz_svn_module libexec/ | ||
- | </code> | + | </file> |
- | viを使えないヘタレ野郎です。すいません。 | + | |
===== mod_dav_svnの設定 ===== | ===== mod_dav_svnの設定 ===== | ||
- | / | + | < |
- | <code> | + | <file> |
< | < | ||
- | < | + | < |
DAV svn | DAV svn | ||
SVNListParentPath on | SVNListParentPath on | ||
- | SVNParentPath / | + | SVNParentPath / |
</ | </ | ||
</ | </ | ||
- | </code> | + | </file> |
===== リポジトリの所有者の変更 ===== | ===== リポジトリの所有者の変更 ===== | ||
行 37: | 行 36: | ||
$ sudo chown -R _www:_www / | $ sudo chown -R _www:_www / | ||
</ | </ | ||
- | 敢えて変な設定をしてなければ、パーミッションは特に弄る必要なし。設定するなら755とかその辺で。 | ||
==== 確認 ==== | ==== 確認 ==== | ||
行 45: | 行 43: | ||
===== アクセス制御 ===== | ===== アクセス制御 ===== | ||
- | subversion.confを再度開き、認証に必要なの設定を追加する。 | + | < |
- | <code> | + | <file> |
< | < | ||
行 55: | 行 53: | ||
SVNParentPath / | SVNParentPath / | ||
Satisfy Any # 匿名ユーザーを許可 | Satisfy Any # 匿名ユーザーを許可 | ||
- | Require valid-user | + | Require valid-user |
AuthType Basic # ベーシック認証を使う | AuthType Basic # ベーシック認証を使う | ||
- | AuthUserFile / | + | |
- | AuthzSVNAccessFile / | + | |
+ | AuthzSVNAccessFile / | ||
</ | </ | ||
</ | </ | ||
- | </code> | + | </file> |
==== 正規ユーザーの設定 ==== | ==== 正規ユーザーの設定 ==== | ||
行 78: | 行 77: | ||
< | < | ||
- | <code> | + | <file> |
[groups] | [groups] | ||
admins = Decomo | admins = Decomo | ||
行 94: | 行 93: | ||
Decomo = rw | Decomo = rw | ||
* = | * = | ||
+ | </ | ||
+ | |||
+ | ===== SSLの設定 ===== | ||
+ | ここからSSLに関する設定。HTTPのままで良ければ以下は設定する必要はない。 | ||
+ | |||
+ | ==== 秘密鍵の生成 ==== | ||
+ | sudoだと上手く行かなかったのでsuする。 | ||
+ | < | ||
+ | $ cd / | ||
+ | $ su | ||
+ | # openssl genrsa -aes256 2048 > server.key | ||
+ | Generating RSA private key, 2048 bit long modulus | ||
+ | ..................................................................................................+++ | ||
+ | ..............+++ | ||
+ | e is 65537 (0x10001) | ||
+ | Enter pass phrase: | ||
+ | Verifying - Enter pass phrase: | ||
</ | </ | ||
- | ==== 参考サイト ==== | + | ==== 公開鍵の生成 ==== |
+ | < | ||
+ | # openssl req -new -key server.key > | ||
+ | Enter pass phrase for server.key: | ||
+ | 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 ' | ||
+ | ----- | ||
+ | Country Name (2 letter code) [AU]:JP | ||
+ | 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) []:CA | ||
+ | Common Name (eg, YOUR name) []: | ||
+ | Email Address []: | ||
+ | |||
+ | Please enter the following ' | ||
+ | to be sent with your certificate request | ||
+ | A challenge password []: 空白 | ||
+ | An optional company name []: 空白 | ||
+ | </ | ||
+ | |||
+ | ==== 自己証明書の生成 ==== | ||
+ | < | ||
+ | # # openssl x509 -in server.csr -days 3650 -req -signkey server.key > server.crt | ||
+ | Signature ok | ||
+ | subject=/ | ||
+ | Getting Private key | ||
+ | Enter pass phrase for server.key: | ||
+ | </ | ||
+ | |||
+ | ==== 秘密鍵のパスワードの解除 ==== | ||
+ | 上記方法で生成したキーだとApacheの起動時にパスワードの入力を求められるらしいが、Mac OS Xだと何それ美味しいの状態なのでパスワードを解除しておく。 | ||
+ | < | ||
+ | # mv server.key server.key.bak | ||
+ | # openssl rsa -in server.key.bak -out server.key | ||
+ | Enter pass phrase for server.key.bak: | ||
+ | writing RSA key | ||
+ | </ | ||
+ | |||
+ | ==== subversion.confの編集==== | ||
+ | subversion.conf.incにリネームし、< | ||
+ | < | ||
+ | # mv subversion.conf subversion.conf.inc | ||
+ | # emacs subversion.conf.inc | ||
+ | < | ||
+ | < | ||
+ | |||
+ | < | ||
+ | DAV svn | ||
+ | SVNListParentPath on | ||
+ | SVNParentPath / | ||
+ | SSLRequireSSL | ||
+ | Satisfy Any # 匿名ユーザーを許可 | ||
+ | Require valid-user | ||
+ | AuthType Basic # ベーシック認証を使う | ||
+ | AuthName " | ||
+ | AuthUserFile / | ||
+ | AuthzSVNAccessFile / | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== mod_sslの設定 ==== | ||
+ | / | ||
+ | |||
+ | < | ||
+ | $ cd / | ||
+ | $ sudo cp ../ | ||
+ | $ sudo mv subversion.conf subversion.conf.inc | ||
+ | </ | ||
+ | |||
+ | ssl.confで必要な箇所だけ抜粋。 | ||
+ | |||
+ | < | ||
+ | SSLRandomSeed startup file:/ | ||
+ | SSLRandomSeed connect file:/ | ||
+ | |||
+ | Listen 443 | ||
+ | |||
+ | AddType application/ | ||
+ | AddType application/ | ||
+ | SSLPassPhraseDialog | ||
+ | SSLSessionCache | ||
+ | SSLSessionCacheTimeout | ||
+ | SSLMutex | ||
+ | |||
+ | < | ||
+ | DocumentRoot "/ | ||
+ | ServerName mysvn.info: | ||
+ | ServerAdmin メールアドレス | ||
+ | ErrorLog "/ | ||
+ | TransferLog "/ | ||
+ | |||
+ | SSLEngine on | ||
+ | SSLCipherSuite ALL: | ||
+ | SSLCertificateFile "/ | ||
+ | SSLCertificateKeyFile "/ | ||
+ | |||
+ | < | ||
+ | SSLOptions +StdEnvVars | ||
+ | </ | ||
+ | < | ||
+ | SSLOptions +StdEnvVars | ||
+ | </ | ||
+ | |||
+ | BrowserMatch " | ||
+ | | ||
+ | | ||
+ | |||
+ | CustomLog "/ | ||
+ | "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \" | ||
+ | |||
+ | Include / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | ===== 参考サイト ===== | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// |