출처
: http://www.architectgroup.net/cb/wiki/1220#./1220?&_suid=13728761753700983735667520673
: http://www.architectgroup.net/cb/wiki/1221
설치 및 구성
- openssl을 포함한 아파치
- Python다운로드 ->설치
- Mercurial다운로드 ->설치 ※ tortoiseHg의 설치와는 무관하게 링크에 걸린 Mercurial를 Python경로에 설치해야함(설치시 자동으로 <Python Dir>의 경로가 지정됨)
- mod_wsgi다운로드->zip 파일 압축 풀기->mod_wsgi.so 옮기기 <Apache_InstallPath>\modules\mod_wsgi.so
mod_wsgi.so파일이름으로 넣으셔야 합니다.
- 시작프로그램->Apache HTTP Server 2.2->Configure Apache Server->Edit the Apache httpd.conf Configuration File!
- <CB_installPath>/repository/scmweb/httpd.conf.hg파일 안의 내용을 Apache httpd.conf 맨 아래에 붙여넣는다.
- httpd.conf파일의 80포트를 Listen 443 로 포트를 변경한다.
- mod_ssl을 실행하기 위해 아래의 예제와 같이 수정한다.
# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf
LoadModule ssl_module modules/mod_ssl.so
#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
LoadModule wsgi_module modules/mod_wsgi.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authz_user_module modules/mod_authz_user.so
#Replace PYTHON_HOME with the absolute path of your Python installation directory.
WSGIPythonPath C:\Python26
NameVirtualHost *:443
<VirtualHost *:443>
<Directory "C:/CB-5.6.1/repository">
Options ExecCGI FollowSymlinks
AddHandler wsgi-script .wsgi
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Location /hg>
AuthType Basic
AuthName "Mercurial Repository"
AuthUserFile "C:/CB-5.6.1/repository/.htaccess"
Require valid-user
</Location>
SSLEngine on
#키파일 경로를 입력해야 한다. (cert파일과 key파일은 아래의 예제를 보고 만든다.)
SSLCertificateFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/server.cert"
SSLCertificateKeyFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/server.key"
</VirtualHost>
WSGIScriptAlias /hg "C:/CB-5.6.1/repository/scmweb/hgwebdir.wsgi"
C:/CB-5.6.1경로는 설치경로이므로 httpd.conf.hg파일에서 가져온것을 사용합니다. server.cert ,server.key파일은 아래의 생성방법을 참조하여 원하는 위치를 넣으면 됩니다.
키생성
개인키생성
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin\openssl.exe
OpenSSL>req -config C:\openssl\bin\openssl.cnf -new -out server.csr
- Enter PEM pass phrase:에서는 개인키에서 사용할 암호를 입력합니다.
- Country Name:국가명입니다. 우리나라는 KO 입니다.
- Locality Name:지역명입니다.
- Organization Name:단체명인데 사용할 도메인을 입력합니다. (아파치 설치할때 입력했던 도메인)
- Organizational Unit Name:여기도 사용할 도메인을 입력합니다.
- Email Address:이메일 주소 아무거나입력합니다.
- 해당폴더에 privkey.pem, server.csr 파일이 생성됩니다.
아파치에 사용할 공개키 생성
OpenSSL> rsa -in privkey.pem -out server.key
OpenSSL> req -config C:\openssl\bin\openssl.cnf -new -x509 -days 365 -key server.key -out server.crt
- 해당키를 httpd.conf파일에 설정합니다.
클라이언트설정
- hg clone <주소> --debug --insecure 명령어를 사용하여 아래의 메시지가 나오면 mercurial.ini파일에 [hostfingerprints]설정을 추가합니다.
- warning: 192.168.3.254 certificate not verified (check web.cacerts config setting) + warning: 192.168.3.254 certificate with fingerprint 91:4f:1a:ff:87:24:9c:09:b6:85:9b:88:b1:90:6d:30:75:64:91:ca not verified (check hostfingerprints or web.cacerts config setting)
- mercurial.ini파일에 아래와 같이 추가를 해줍니다.
[hostfingerprints] 192.168.3.254 = 91:4f:1a:ff:87:24:9c:09:b6:85:9b:88:b1:90:6d:30:75:64:91
아파치서버설정
설치 (아래의파일들을 설치한다.)
- openssl을 포함한 아파치
- Python다운로드 ->설치
- Mercurial다운로드 ->설치 ※ tortoiseHg의 설치와는 무관하게 링크에 걸린 Mercurial를 Python경로에 설치해야함(설치시 자동으로 <Python Dir>의 경로가 지정됨)
- mod_wsgi다운로드->zip 파일 압축 풀기->mod_wsgi.so 옮기기 <Apache_InstallPath>\modules\mod_wsgi.so
mod_wsgi.so파일이름으로 넣으셔야 합니다.
httpd.conf설정(간단한설정)
- C드라이브에 repository폴더를 만듭니다.
- 키생성
- 키생성
- 생성한 키(server.crt,server.key)를 C:\Apache2.2폴더안에 넣습니다.
- 권한파일생성
- 아파치설치경로의 bin폴더에 htpasswd.exe을 사용하여 권한파일을 만듭니다.
- 명령어1(파일생성):htpasswd -c .htaccess bond
- 명령어2(계정추가):htpasswd .htaccess jangil
- 생성된 .htaccess파일을 c드라이브의 repository폴더에 넣습니다.
- WSGI구성파일 편집
- 다운로드
- 압축을푼 후 hgwebdir.wsgi파일과 hgweb_apache.config파일을 c드라이브의 repository폴더에 넣습니다.
- httpd.conf파일 맨 아래에 아래의 정보를 넣습니다.(Listen 80포트를 443포트로 변경합니다.)
LoadModule wsgi_module modules/mod_wsgi.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authz_user_module modules/mod_authz_user.so WSGIPythonPath C:\Python26 NameVirtualHost *:443 <VirtualHost *:443> <Directory "C:/repository"> Options ExecCGI FollowSymlinks AddHandler wsgi-script .wsgi AllowOverride None Order allow,deny Allow from all </Directory> ErrorLog "C:/Apache2.2/hg.log" <Location /hg> AuthType Basic AuthName "Mercurial Repository" AuthUserFile "C:/repository/.htaccess" Require valid-user </Location> SSLEngine on SSLCertificateFile "C:\Apache2.2\server.crt" SSLCertificateKeyFile "C:\Apache2.2\server.key" WSGIScriptAlias /hg "C:/repository/hgwebdir.wsgi" </VirtualHost>
- repository폴더안에 hg폴더를 생성합니다.
- hg폴더안에 머큐리얼 저장소를 생성합니다.
- 아래의 파일을 repository의 .hg폴더아래에 놓는다.
- 클라이언트PC 아파치서버 Https구성하기을 한 후에 clone명령어를 사용합니다.
- 예) hg clone https://bond:007@<서버아이피>/hg/<repository이름>
'IT_Server > Web_Server & WAS' 카테고리의 다른 글
[펌] Apache + Tomcat + mod_jk 설정 후 AJP 연결하는 서버 환경 설정 (0) | 2015.02.11 |
---|---|
[Tomcat] HTTP Request Logging (HTTP 요청 로깅) : Request Dumper Filter 를 써보자! (0) | 2013.08.01 |
[펌] IIS에서 SSL을 구현하는 방법 (0) | 2013.06.24 |
[펌] 아파치 환경에서의 SSL 구성하기 (0) | 2013.06.24 |
[펌][NGINX] CentOS기반 Nginx, PHP-FPM, APC MySql 환경 구성 Quick 가이드 (0) | 2013.05.24 |