freebsd:mod_dav_svn_mod_authz_svnでsubversionサーバの構築

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
freebsd:mod_dav_svn_mod_authz_svnでsubversionサーバの構築 [2011-11-12 01:43]
Decomo
freebsd:mod_dav_svn_mod_authz_svnでsubversionサーバの構築 [2015-09-17 14:15] (現在)
Decomo [秘密鍵のパスワードの解除]
行 14: 行 14:
 ^リポジトリパス | /doko/soko/svn/repos | ^リポジトリパス | /doko/soko/svn/repos |
 ^認証系のファイル置き場 | /doko/soko/svn | ^認証系のファイル置き場 | /doko/soko/svn |
 +
 +※Apache 2.4では一部変更点があるので[[#Apache 2.4 + Subversion 1.8対応]]を参照のこと。
  
 ===== インストール ===== ===== インストール =====
行 93: 行 95:
  
 ==== 正規ユーザーの追加 ==== ==== 正規ユーザーの追加 ====
-<ilcode>AuthUserFile</ilcode>で指定したファイルにベーシック認証ユーザーを追加する。+''AuthUserFile''で指定したファイルにベーシック認証ユーザーを追加する。
 <cli> <cli>
 $ sudo htpasswd -c /doko/soko/svn/htpasswd Decomo $ sudo htpasswd -c /doko/soko/svn/htpasswd Decomo
行 103: 行 105:
  
 ==== リポジトリへのアクセス制御設定 ==== ==== リポジトリへのアクセス制御設定 ====
-<ilcode>AuthzSVNAccessFile</ilcode>で指定したファイルに、リポジトリへのアクセス制御設定を記述する。+''AuthzSVNAccessFile''で指定したファイルに、リポジトリへのアクセス制御設定を記述する。
 <code> <code>
 [groups] [groups]
行 143: 行 145:
  
 ==== 秘密鍵の生成 ==== ==== 秘密鍵の生成 ====
 +秘密鍵は漏れてはならないので、ディレクトリのパーミッションに注意。
 <cli prompt="# "> <cli prompt="# ">
-# openssl genrsa -aes256 2048 > /doko/soko/svn/secret.key+# cd /usr/local/etc/apache22/ 
 +# mkdir -m 0700 ssl.{key,crt} 
 +# openssl genrsa -aes256 2048 > ssl.key/secret.key
 Generating RSA private key, 2048 bit long modulus Generating RSA private key, 2048 bit long modulus
 .........................................+++ .........................................+++
行 153: 行 158:
 </cli> </cli>
  
-==== 公開鍵の生成 ====+==== 証明書署名要求の生成 ====
 <cli prompt="# "> <cli prompt="# ">
-# openssl req -new -key server.key >server.csr+# openssl req -new -key ssl.key/secret.key > ssl.key/server.csr
 Enter pass phrase for server.key: Enter pass phrase for server.key:
 You are about to be asked to enter information that will be incorporated You are about to be asked to enter information that will be incorporated
行 180: 行 185:
 ==== 自己証明書の生成 ==== ==== 自己証明書の生成 ====
 <cli prompt="# "> <cli prompt="# ">
-# openssl x509 -in server.csr -days 3650 -req -signkey server.key > server.crt+# openssl x509 -in ssl.key/server.csr -days 3650 -req -signkey ssl.key/secret.key > ssl.crt/server.crt
 Signature ok Signature ok
 subject=/C=JP/ST=Kanagawa/L=Yokohama/O=PRODUCTION KusoGA/OU=CA/CN=svnsvr/emailAddress=メールアドレス subject=/C=JP/ST=Kanagawa/L=Yokohama/O=PRODUCTION KusoGA/OU=CA/CN=svnsvr/emailAddress=メールアドレス
行 187: 行 192:
 </cli> </cli>
  
 +==== 秘密鍵のパスワードの解除 ====
 +Apache起動時に秘密鍵のパスワード入力を解除する。
 +<cli prompt="# ">
 +# openssl rsa -in ssl.key/secret.key -out ssl.key/server.nopasswd.key
 +Enter pass phrase for ssl.key/secret.key:(秘密鍵のパスワード)
 +writing RSA key
 +</cli>
 +
 +==== mod_sslの設定 ====
 +extraディレクトリに設定サンプルがあるのでコピー。
 +<cli prompt="# ">
 +$ cd /usr/local/etc/apache22/Includes
 +$ sudo cp ../extra/httpd-ssl.conf ssl.conf
 +$ sudo mv subversion.conf subversion.conf.inc
 +</cli>
 +ssl.confから必要な部分のみ抜粋。
 +<code apache|h /usr/local/etc/apache22/Includes/ssl.conf>
 +SSLRandomSeed startup file:/dev/urandom 512
 +SSLRandomSeed connect file:/dev/urandom 512
 +
 +Listen 443
 +
 +AddType application/x-x509-ca-cert .crt
 +AddType application/x-pkcs7-crl    .crl
 +
 +SSLPassPhraseDialog  builtin
 +
 +SSLSessionCache        "shmcb:/var/run/ssl_scache(512000)"
 +SSLSessionCacheTimeout  300
 +
 +SSLMutex  "file:/var/run/ssl_mutex"
 +
 +<VirtualHost _default_:443>
 +
 +DocumentRoot "/usr/local/www/apache22/data"
 +ServerName svnsvr:443
 +ServerAdmin メールアドレス
 +ErrorLog "/var/log/httpd-error.log"
 +TransferLog "/var/log/httpd-access.log"
 +
 +SSLEngine on
 +
 +SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
 +
 +SSLCertificateFile "/usr/local/etc/apache22/ssl.crt/server.crt"
 +
 +SSLCertificateKeyFile "/usr/local/etc/apache22/ssl.key/server.key"
 +
 +<FilesMatch "\.(cgi|shtml|phtml|php)$">
 +    SSLOptions +StdEnvVars
 +</FilesMatch>
 +<Directory "/usr/local/www/apache22/cgi-bin">
 +    SSLOptions +StdEnvVars
 +</Directory>
 +
 +BrowserMatch ".*MSIE.*" \
 +         nokeepalive ssl-unclean-shutdown \
 +         downgrade-1.0 force-response-1.0
 +
 +CustomLog "/var/log/httpd-ssl_request.log" \
 +          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
 +
 +Include /usr/local/etc/apache22/Includes/subversion.conf.inc
 +
 +</VirtualHost>
 +</code>
 +
 +===== Apache 2.4 + Subversion 1.8対応 =====
 +
 +Apache 2.4 + Subversion 1.8にしたら動かなくなったので修正点を殴り書き。
 +
 +==== mod_dav_svn ====
 +
 +/usr/ports/www/mod_dav_svn に分離されたので別途インストール。
 +
 +==== httpd.conf ====
 +
 +以下のモジュールが有効になっているか確認。
 +<code conf>
 +LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
 +LoadModule ssl_module libexec/apache24/mod_ssl.so
 +LoadModule dav_module libexec/apache24/mod_dav.so
 +LoadModule dav_fs_module libexec/apache24/mod_dav_fs.so
 +</code>
 +
 +==== 220_subversion.conf ====
 +
 +サードパーティ製モジュールの読み込みと設定は''/usr/local/etc/apache24/modules.d/''の中のコンフィグファイルで行うようになったっぽい。
 +
 +Subversion関連の設定は''220_subversion.conf''をいじる。ファイルがなければ同じ階層にあるサンプルファイルをコピーする。
 +
 +''dav_svn_module''の設定は''/usr/local/etc/apache24/Includes''の方で設定したものがそのまま使えるので、とりあえず''LoadModule''のコメントアウトを解除するだけでおk。
 +
 +<code conf>
 +LoadModule dav_svn_module     libexec/apache24/mod_dav_svn.so
 +LoadModule authz_svn_module   libexec/apache24/mod_authz_svn.so
 +LoadModule dontdothat_module  libexec/apache24/mod_dontdothat.so
 +</code>
 +
 +
 +==== ssl.conf ====
 +
 +**SSLMutex  "file:/var/run/ssl_mutex"**を**Mutex sysvsem default**に書き換え。
 +
 +~~DISCUSSION~~
  
  • freebsd/mod_dav_svn_mod_authz_svnでsubversionサーバの構築.1321029802.txt.gz
  • 最終更新: 2011-11-12 01:43
  • by Decomo