Centos7インストール構成のsvn httpsのアクセスマーク

Centos7のインストール構成のsvn HTTPSアクセス
1、およびインストールのsvn依存
Javaコード

  1. yumのmod_dav_svnの転覆をインストール

2、リポジトリの作成
Javaコードを

  1. svnadminの作成/データ/ svndata / RD

アクセスするために//プロトコル:驚くことではないが、この時点で、あなたはSVNを使用することができます

3、Apacheのインストール
Javaコードを

  1. YUMのhttpdをインストール-y

4、リポジトリ設定ファイルを作成する第二の工程変更
するJavaコードを

  1. [一般]
  2. アノン・アクセス=なし
  3. auth-アクセス=書き込み
  4. パスワードデシベル= /data/svndata/passwd.conf #httpd認証使用
  5. authz-DB = /data/svndata/authz.conf #svnリポジトリファイルのパーミッション
  6. 領域=番目の#リポジトリ
  7. =なし力のユーザー名の場合

  8. [SASL]
  9. 使用-SASL =真

  10. 最小暗号化= 0

  11. MAX-暗号化= 256

5、第4工程で述べた認証ファイルを作成し、ユーザーを追加
するJavaコードを

  1. タッチ/data/svndata/passwd.conf
  2. htpasswdの-c /data/svndata/passwd.conf unclecode#、-Cいない、第二のユーザを追加し、それ以外の場合は上書きされます
    は、/ usr / local / apache / binに / htpasswdのは/ usr / local / SVN / confに/ svn_passwdfileユーザ名
    shスクリプトを達成するために、ユーザーを追加します
    。#/ binに/ SHを!
    IFをし、次に[ "$ 1" -n!]
    読む-p "ユーザー名を作成して入力します。"名前
    は/ usr / local / Apacheの/ binに/ htpasswdのは/ usr / local / SVNを/ svn_passwdfile confに/名$
    他に
    は/ usr / local / Apacheの/ binに/ htpasswdのは/ usr / local / SVN / confに/ $ 1 svn_passwdfile
    Fiの

図6に示すように、上述SVNリポジトリファイルのパーミッション第四のステップ作成
Javaコード

  1. 我々は/data/svndata/authz.conf
  2. [基]
  3. RD = unclecode
  4. [RD:/]
  5. @ Rdを= RW

7、HTTPの道
Javaコード

  1. 私たちは、ある/etc/httpd/conf/httpd.conf
  2. 8088を聞きます
  3. VI /etc/httpd/conf.d/subversion.confまたはhttpd.confのコンテンツに直接書き込み、これが新しいドキュメントを作成しません。
  4. <場所/ SVN>
  5. DAVのsvn
  6. SVNListParentPath上
  7. SVNParentPathの/データ/ svndata
  8. AuthTypeディレクティブの基本
  9. ここでAuthName「認可」
  10. AuthUserFileは/data/svndata/passwd.conf
  11. AuthzSVNAccessFile /data/svndata/authz.conf
  12. 有効なユーザーを必要とします
  13. </場所>
  14. 启动のapache:systemctl再起動httpd.service
    猫の/ etc / selinuxを/ configのSELINUX = disabledに施行
  15. 開始のsvn:電子-d -r /データ/ svndata /

効果を確認する8は、http道
Javaコードを

  1. http://127.0.0.1:8088/svn
  2. ユーザー名とパスワードを作成するための第5工程を入力します。

9、HTTPSモード
9.1は、OpenSSLのインストール
Javaコードを

  1. YUMのmod_ssl OpenSSLをインストール

9.2、証明書生成する
Javaコードを

  1. プライベートCDの/ etc / PKI / TLS /
  2. opensslのgenrsa -out svn_server.key 1024
  3. openssl reqを-new -key svn_server.key -out svn_server.csr
  4. commonNameの証明書は、それ以外の場合は、同期エラーを建設する時に入力する必要がありますし、Apacheの設定ファイルで一貫しています。
  5. httpd.confのServerNameの里svn.ht.com:9091
  6. CDの/ etc / PKI / TLS / certsの
  7. opensslのX509 -req -days 365 -in /etc/pki/tls/private/svn_server.csr -signkey /etc/pki/tls/private/svn_server.key -out svn_server.crt

9.3、SSL Apacheを設定
するJavaコード

  1. 私たちはする/etc/httpd/conf.d/ssl.conf
  2. SSLCertificateFile /etc/pki/tls/certs/svn_server.crt
  3. SSLCertificateKeyFile /etc/pki/tls/private/svn_server.key
    ポート443が変更された場合、2を覚えています。
  4. VI /etc/httpd/conf.d/subversion.conf //新規または単にhttpd.confのコンテンツに直接書き込みを
  5. <場所/ SVN>
  6. SSLRequireSSL
  7. DAVのsvn
  8. SVNListParentPath上
  9. SVNParentPathの/データ/ svndata
  10. AuthTypeディレクティブの基本
  11. ここでAuthName「認可」
  12. AuthUserFileは/data/svndata/passwd.conf
  13. AuthzSVNAccessFile /data/svndata/authz.conf
  14. 有効なユーザーを必要とします
  15. </場所>
  16. SSLRequireSSL </場所>の行の前に追加

Javaコード

  1. 私たちは、ある/etc/httpd/conf/httpd.conf
  2. ボトムラインプラス2
  3. LoadModuleのdav_svn_moduleモジュール/ mod_dav_svn.so
  4. LoadModuleのauthz_svn_moduleモジュール/ mod_authz_svn.so
  5. 自動的にインポートされたインストールのmod_sslの後のLoadModule ssl_moduleモジュール/ mod_ssl.so //。

10、Apacheの再起動
Javaコードを

  1. systemctl再起動httpd.service

効果を確認する11、httpsの道
Javaコードを

  1. https://127.0.0.1:8088/svn
  2. ユーザー名とパスワードを作成するために、第5工程を入力します
    HTTPSアクセスを:次の3行は、コメントを解除することができます。
    confにする#include /エクストラ/ httpdの-ssl.confの
    #SSLRequireSSL
    #LoadModule ssl_moduleモジュール/ mod_ssl.so
    解があなたがApacheのmod_sslのインストール時にインストールされていない
    HTTPSアクセスをサポートするようにApacheのために、セキュリティシステムは、Apache、OpenSSLの、mod_ssl.soれている必要があり
    、1をインストールOpenSSLは:
    、実質的にシステムは、/ usr / binに/ opensslの中に設置されており、opensslコマンドを直接使用することができ、システムがインストールされていない場合は、ダウンロードのOpenSSLがインストールされています。
    2、インストールmod_ssl.so:
    今、Apacheは、このモジュールが付属して、デフォルトではインストールされていません。静的および動的ローディングコンパイラ:二つの方法でインストールされています。
    OpenSSL LIB whereisは使用して取得コマンドパスを含む、
    CD-ソースパスのApache /モジュール/ SSL
    コマンド(APACHE_HOME /ビン)を用いAPXS -i -a -D HAVE_OPENSSL = 1 -I / USR /含む/ OpenSSLの/ -L / USR / lib64に/ opensslの/ -c * .cの-lcrypto -lssl -ldl
    デフォルト443ポートへの訪問中に、SVNのポートを変更した場合。
    指定されたポートは9091件のHTTPSアクセスを聞く場合でも移植することはできません。私は理由を理解していません。

他の一般的に使用されるスクリプト
のvimは、事前にコミットする
#!/ binが/ SHの
REPOS = "$ 1"
TXN = "$ 2"

ログメッセージは、いくつかのテキストが含まれていることを確認してください。

SVNLOOK =は/ usr / local / SVN / binに/ svnlook
#$ SVNLOOK "$ TXN"の"$ REPOSを" -tログ| \

grepの "[-ZA-Z0-9]">を/ dev / null || 1番出口

この作者のコミットを実行する権限を持っていることを確認してください

修正されたファイルやディレクトリにコミットします。

commit-access-control.pl "の$ REPOS" "$ TXN" コミット・アクセス・control.cfg || 1番出口

LOGMSG = $SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c
であれば[ "$ LOGMSG" -lt 5];#........ 5 .........
その後、
エコー-e「SVNのログメッセージ「トンを空にすることができますが、入力がでなければなりません!あなたのコミットのために少なくとも5つの文字!」1>&2
1番出口
Fiの

すべてのチェックが渡され、そのコミットが可能。

終了0

Vimのコミット後
#!/ binに/ SHの
輸出LC_CTYPE = EN_US.UTF-8

輸出PATH = $ PATHに:は/ usr / local / SVN / binに:/ホーム/ SVN /ネット-DAP /フック:
REPOS = "$ 1"
REV = "$ 2"
#1 SENDTO = "[email protected]"

我々は上記で作成したスクリプトを呼び出して、これらの人々にそれを送ります

#は/ usr / local / SVN /スクリプト/ svnemail_commit.sh "$ REPOS" の "$ REV" "$ SENDTO"

vimの事前リビジョン属性変更
#!/ binに/ shを
終了0

クライアントのSVN
の設定環境変数は/ etc / profile
I解除
解除-f pathmunge
エクスポートSVN_HOME =は/ opt / CollabNet_Subversion /
PATHをエクスポートします。PATH = $:$ SVN_HOME / binが

おすすめ

転載: blog.51cto.com/13866481/2435601