利用apache+svn+jenkins+maven 實現java環境的自動化構建和部署(二)(網內首發超詳細版)

2.4 ssl方式部署apache


2.4.1安裝apache


./configure --prefix=/usr/local/apache2 --enable-dav --enable-ssl--enable-so --enable-mods-shared=all


make && make install


2.4.2安裝svn


安裝apr-1.4.6.tar.gzapr-util-1.5.1.tar.gzneon-0.29.6.tar.gz同2.2章節部分


unzip sqlite-amalgamation-3071502.zip


tar -xzvf subversion-1.7.8.tar.gz


mv sqlite-amalgamation-3071502 ./subversion-1.7.8/sqlite-amalgamation


cd subversion-1.7.8


./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --without-berkeley-db --with-ssl


make && make install


注:環境變量等配置參考2.2章節部分


2.4.2 部署認證


通常系統已默認安裝openssl,並且與之依賴的包很多,可不卸載直接編譯安裝;或就用系統默認版本
創建ssl所需要的證書
這裏所有的文件都是創建在/usr/local/apache2/conf目錄中,按照默認httpd-ssl.conf認證文件設置路徑
創建key文件:


openssl genrsa -des3 -out server.key 1024


執行完後應該在當前目錄中有一個server.key文件
查看創建的key文件:(不是必須)


openssl rsa -noout -text -in server.key


創建pem文件:(不是必須)


openssl rsa -in server.key -out server.key.unsecure


創建scr文件:


openssl req -new -key server.key -out server.csr


執行完後應該在當前目錄中有一個server.csr文件
創建crt文件:


openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt


執行完後應該在當前目錄中有一個server.crt文件
2.4.3修改apache的ssl配置文件
修改httpd.conf
在文件中找到下面一行,把註釋去掉


#Include conf/extra/httpd-ssl.conf


修改httpd-ssl.conf
在extra目錄中,修改ssl的配置文件
找到SSLCertificateFile和SSLCertificateKeyFile的配置,改文件路徑到上面創建的目錄,


啓動apache


# /usr/local/apache2/bin/httpd -k restart


httpd not running, trying to start


Apache/2.2.19 mod_ssl/2.2.19 (Pass Phrase Dialog)


Some of your private key files are encrypted for security reasons.


In order to read them you have to provide the pass phrases.


Server www.example.com:443 (RSA)


Enter pass phrase:


OK: Pass Phrase Dialog successful.


注意:這時應該要求你回答證書密鑰,回答後即可啓動打開瀏覽器測試這時候應該能以https訪問你的站點了
但這時,是所有的用戶都可以訪問你的https站點的,如果你希望只有認證的用戶才能訪問的話,請繼續2.4.4的配置!
2.4.4 創建認證客戶所需要的證書
創建用戶的key文件:


openssl genrsa -des3 -out client.key 1024


創建用戶的crt證書文件:


openssl req -new -x509 -days 3650 -key client.key -out client.crt


修改SSLCACertificateFile的文件路徑
創建訪問用戶的csr文件:


openssl req -new -out pony.csr


創建訪問用戶的crt證書文件:


openssl x509 -req -in pony.csr -out pony.crt -signkey client.key -CA client.crt -CAkey client.key -CAcreateserial -days 3650


導出爲pfx證書:(ie中只能導入pfx證書)


openssl pkcs12 -export -in pony.crt -inkey client.key -out pony.pfx


在你的測試機的ie中導入這個pfx證書
修改ssl配置文件:
在httpd-ssl.conf文件中找到SSLCACertificateFile的配置,然後修改文件路徑爲client.crt
把以下兩行註釋去掉:


SSLVerifyClient require
SSLVerifyDepth 10


重新啓動apache,再次訪問apache的時候,ie就會彈出窗口選擇證書了


注:以上並未做實際測試,只供參考。


3 Linuxsvn獨立服務器方式部署


3.1安裝SVN


tar -xzvf apr-1.4.6.tar.gz


cd apr-1.4.6


./configure --prefix=/usr/local/apr


make && make install



cd ..


tar -xzvf apr-util-1.5.1.tar.gz


cd apr-util-1.5.1


./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr


make && make install


echo "/usr/local/apr/lib/" >> /etc/ld.so.conf


Ldconfig


cd ..



tar -xzvf neon-0.29.6.tar.gz


cd neon-0.29.6


./configure --prefix=/usr/local/neon


make && make install


echo "/usr/local/neon/lib" >> /etc/ld.so.conf


ldconfig



cd ..


unzip sqlite-amalgamation-3071502.zip


tar -xzvf subversion-1.7.8.tar.gz


mv sqlite-amalgamation-3071502 ./subversion-1.7.8/sqlite-amalgamation


cd subversion-1.7.8


./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --without-berkeley-db --with-ssl


make && make install


cd ..


cat >> /etc/profile <<EOF


PATH=$PATH:/usr/local/svn/bin/;export PATH


EOF


檢測版本是否安裝正確


#/usr/local/svn/bin/svnserve --version


3.2 配置環境


創建版本庫存放目錄


mkdir -p /data/svndata/


創建版本庫


svnadmin create /data/svndata/apps


svnadmin create /data/svndata/aizhouyou


設置訪問權限


groupadd svn


useradd -g svn -s /sbin/nologin svn


chown -R svn:svn /data/svndata (設置訪問權限)



分別修改配置文件,多版本庫環境下


例1:apps版本庫


vim/data/svndata/apps/conf/svnserve.conf


[general]


anon-access = none


auth-access = write


password-db = /usr/local/svn/conf/passwd.conf


authz-db = /usr/local/svn/conf/authz.conf


realm =apps


例2:aizhouyou版本庫


vim/data/svndata/aizhouyou/conf/svnserve.conf


[general]


anon-access = none


auth-access = write


password-db = /usr/local/svn/conf/passwd.conf


authz-db = /usr/local/svn/conf/authz.conf


realm =aizhouyou


注意:此信息中,包含了一些權限設置,以及SVN的用戶名、密碼驗證配置相關信息。這裏爲了方便使用,我將password-db和authz-db都統一放到了svn裏面,這樣,讓多個版本庫可以共享同樣的密碼和驗證信息。


接下來,直接來到/usr/local/svn,建立conf目錄,並建立passwd.conf和authz.conf文件統一管理


mkdir -p/usr/local/svn/conf


vim/usr/local/svn/conf/passwd.conf


[users]


#username = password


#username2 = password2


test = 123456


diaohongyong = 123456


chengxiaochao = 123456


zhengyongli = 123456


zhangran = 123456


xiaoyali = 12345


比較好理解, 除了個users標籤,後面的每一行,對應訪問SVN的用戶名和密碼,中間以等號隔開,保存後,直接退出。


我們再來看看authz.conf文件:


[groups]


#admin = username, username2


admin = diaohongyong,chengxiaochao


developers=diaohongyong,zhengyongli,zhangran,xiaoyali


[/]


@admin = rw


[apps:/]


@admin = rw


@developers =rw


test = rw


[aizhouyou:/]


@admin = rw


xiaoyali = rw


groups表示用戶組,這裏把username,username2都設置到一個叫admin的組裏面。


[/]表示根目錄及以下,根目錄是svnserve啓動時指定的,我們指定爲/data/svndata[/]就是表示對全部版本庫設置權限。[apps:/]表示fengwang版本庫設置權限,[aizhouyou:/]表示aizhouyou版本庫設置權限,@admin=rw表示admin組的所有用戶,都有讀寫權限

繼續閱讀請查看第三部分:http://auskangaroo.blog.51cto.com/740826/1410549

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章