728x90
반응형

요즘 많은 사이트들이 https 프로토콜을 사용을 합니다. 개발을 할때도 http 가 아닌 https 로 통신해야하는 경우가 있는데, SSL 인증서를 구입하기에는 비용이 비싼것으로 알고 있습니다. 간단하게 개발을 위한 사설 인증서를 발급받아서 https로 Tomcat을 구동하는 방법을 알아 보기로 합니다. 준비 사항이 있는데, 개발 PC에 JDK 와 Tomcat이 설치가 되어 있어야 합니다. 설치에 대한 내용은 간단한 것이므로 생략하도록 합니다.

* 명령어 중 빨간 글씨는 자신이 원하는 것으로 바꾸어도 됩니다.

JDK를 이용한 KeyStore 생성

JDK에서 제공하고 있는 keytool을 이용해 keystore를 생성합니다. Windows의 명령프롬프트를 관리자로 실행하여 아래와 같이 keytool을 실행합니다.

keytool -genkey -alias tomcat -keypass changeit -storepass changeit -keyalg RSA -keystore F:\Project\ssl\.keystore 

keytool은 다른 목적으로 storepass와 keypass를 사용합니다. storepass는 키 저장소에 액세스하는 데 사용됩니다. keypass는 특정 키 쌍의 개인 키에 액세스하는 데 사용됩니다. keyalg 는 key algorithm name 을 이야기하며 RSA라는 것으로 지정합니다. 그리고 저장장소는 "F:\Project\ssl\.keystore" 로 지정합니다. 

C:\WINDOWS\system32>keytool -genkey -alias tomcat -keypass changeit -storepass changeit -keyalg RSA -keystore F:\Project\ssl\.keystore
이름과 성을 입력하십시오.
  [Unknown]:  localhost
조직 단위 이름을 입력하십시오.
  [Unknown]:
조직 이름을 입력하십시오.
  [Unknown]:
구/군/시 이름을 입력하십시오?
  [Unknown]:
시/도 이름을 입력하십시오.
  [Unknown]:
이 조직의 두 자리 국가 코드를 입력하십시오.
  [Unknown]:
CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown이(가) 맞습니까?
  [아니오]:  예


Warning:
JKS 키 저장소는 고유 형식을 사용합니다. "keytool -importkeystore -srckeystore F:\Project\ssl\.keystore -destkeystore F:\Project\ssl\.keystore -deststoretype pkcs12"를 사용하는 산업 표준 형식인 PKCS12로 이전하는 것이 좋습니다.

C:\WINDOWS\system32>

C:\에 .keystore가 생성되었습니다. 그런데 키 생성시 경고가 발생했습니다. 생성된 keystoretype 이 JKS 키로 생성되었는데, 이는 "Java KyeStore"의 준말로 Java 환경에서만 사용이가능하니, 산업 표준 형식인 PKCS12(Public Key Cryptogrephic Standards)로 변환을 하라는 것 입니다. PKCS12 는 여러 플랫폼에서 사용이 가능합니다. 변환은 아래 명령어로 변환합니다.

keytool -importkeystore -srckeystore F:\Project\ssl\.keystore -destkeystore F:\Project\ssl\.keystore -deststoretype pkcs12

실행을 하면 아래와 같이 성공되었다고 나타납니다. 기존 keystore 파일은 keystore.old 로 백업이 된 것도 확인 됩니다.

C:\WINDOWS\system32>keytool -importkeystore -srckeystore F:\Project\ssl\.keystore -destkeystore F:\Project\ssl\.keystore -deststoretype pkcs12
소스 키 저장소 비밀번호 입력:
tomcat 별칭에 대한 항목이 성공적으로 임포트되었습니다.
임포트 명령 완료: 성공적으로 임포트된 항목은 1개, 실패하거나 취소된 항목은 0개입니다.

Warning:
"F:\Project\ssl\.keystore"을(를) Non JKS/JCEKS(으)로 이전했습니다. JKS 키 저장소가 "F:\Project\ssl\.keystore.old"(으)로 백업되었습니다.

C:\WINDOWS\system32>

CER 인증서 생성

앞에서 생성한 KeyStore를 이용하여 인증서를 만들어 줍니다. 명령어는 아래와 같습니다.

keytool -export -alias tomcat -storepass changeit -file f:\Project\ssl\tomcat.cer -keystore f:\Project\ssl\.keystore
C:\WINDOWS\system32>keytool -export -alias tomcat -storepass changeit -file f:\Project\ssl\tomcat.cer -keystore f:\Project\ssl\.keystore
인증서가 <f:\Project\ssl\tomcat.cer> 파일에 저장되었습니다.

C:\WINDOWS\system32>

명령어를 실행하면 tomcat.cer 파일이 F:\Project\ssl 폴더에 생성됩니다.

Tomcat 설정

저는 이클립스를 사용할 것이기 때문에 아래와 같이 간단하게 Tomcat 서버 설정 후 Test 라는 프로젝트를 만들어 테스트를 진행하였습니다. 우선 http 통신과 Test 프로젝트가 동작되는 환경을 구성합니다.

 

1. 이클립스 [Window → Show View → Servers] 를 클릭합니다.

2. 아래와 같은 Servers 탭이 나타나는데 파란색 글씨를 클릭합니다.

3. Tomcat 을 추가하기 위하여 리스트의 apache 폴더 안의 Tomcat 을 자신의 PC에 맞는 버전으로 선택하여 줍니다. 저는 Tomcat 8.5가 설치되어 있기 때문에 "Tomcat v8.5 Server"를 선택하였습니다. 그리고 Tomcat 이 설치된 경로를 잡아주고 완료합니다.

4. 간단한 Test 프로젝트를 생성하고 "index.html" 파일을 만들어 줍니다. 그리고 Severs 탭에서 Tomcat v8.5에 마우스 오른쪽 버튼으로 나오는 메뉴 [Add and Remove] 선택합니다. Test 프로젝트를 Add 버튼으로 오른쪽으로 옮겨 줍니다.

5. 서버를 기동하여 "http://localhost:8080/Test/" URL로 접근하면 아래와 같이 화면이 나타납니다.

 

그렇다면 이제 Tomcat 설정 파일 server.xml 파일을 열어 SSL 통신을 위한 Connector 에 등록합니다. server.xml 파일은 아래와 같은 위치에 있으니 참고하십시오.

<Connector port="8443" protocal="HTTP/1.1" maxThreads="150"
    SSLEnabled="true" clientAuth="false" keyAlias="tomcat"
    keystoreFile="F:/Project/ssl/.keystore" keystorePass="changeit"
    scheme="https" secure="ture" sslProtocol="TLS" />

설정이 완료되었다면 Tomcat을 구동하여 "https://localhost:8443/Test/" 로 접속합니다. 그런데 아래 그림과 같이 안전하지 않은 사이트라고 판단을 하여 위험 화면이 나타납니다. 이는 신뢰하는 보안 인증서가 아니기 때문에 아래와 같이 위험 화면이 나타나는 것으로 화면 하단의 "고급" 버튼을 클릭하여 "localhost(안전하지않음)으로 이동" 을 클릭하면 정상적으로 페이지가 출력됩니다. 

 

이러한 위험 페이지가 계속 나타난다면 개발하기 귀찮아 집니다. 그래서 아래와 같이 인증서를 브라우저에 등록하여 위험 페이지가 나오지 않다록 설정할 수 있습니다. 저는 크롬을 기반으로 설명을 하도록 하겠습니다.

 

1. 크롬에서 "chrome://settings/security" 를 입력하여 아래 "인증서 관리"를 클릭합니다.

2. 인증서 팝업창에서 "가져오기"를 선택하여 줍니다.

3. 인증서 가져오기 마법사가 실행되며 다음을 눌러 진행합니다. 이때 파일을 선택하는 화면에서 위에서 만들어준 "tomcat.cer" 파일을 찾아보기하여 선택합니다. 

4. 인증서를 저장하는 부분은 "모든 인증서를 다음 장소에 저장" 선택 후, 인증서 저장장소는 찾아보기로 "신최할 수 있는 루트 인증 기관"을 선택하여 다음으로 진행하고 마법사를 완료합니다. "마침" 버튼을 클릭하면 보안 경고가 나오는데, "예"를 눌러 설치를 마무리 합니다.

 이제 크롬을 재기동 후 "https://localhost:8443/Test/" 로 접속하면 위험페이지 없이 원하는 index.html 페이지가 표시되는 것을 확인 할 수 있습니다.

지금까지 Tomcat 에서 HTTPS 통신을 하는 개발환경을 구성하여 보았습니다. 

728x90
반응형
728x90
반응형
 
얼마전에 설치한 JBoss의 가상 호스트 설정를 설정할 일이 생겼다. 
 
상황은 이렇다. 현재 설치된 JBoss를 이용하여 두개의 호스트네임을 두어 하나는 실제 운영을 하기 위한것이고 하나는 TEST 용으로 사용될 것이다. 바꾸어 말하자면 테스트 서버를 하나 두고 싶다는 말이다. ㅡ.ㅡ;;
 
그럼 일단 가상호스트에 대한 개념을 이해해보자.
  • 웹 서버는 서로 다른 두개의 가상 호스트를 처리한다.
  • 웹 서버는 서로 다른 두개의 가상 호스트에 대한 static content를 처리한다.
  • mod-jk는 가상 호스트에 대해서 JBoss로 HTTP Request를 요청한다.
  • JBoss에는 두 개의 서로 다른 애플리케이션이 배포되며 이 애플리케이션은 서로 다른 가상 호스트로 서비스를 제공한다.
  • 배포할 웹 애플리케이션의 jboss-web.xml 파일에는 가상 호스트 정보가 포함된다.
  • 배포할 웹 애플리케이션의 jboss-web.xml 파일에는 context root가 모두 /로 정의한다.
특히 여기에서 웹 애플리케이션이 중요하다. 가상 호스트에서 서비스를 제공하는 것이므로 모두 /로 요청을 받아야 합니다. 만약, 가상호스트를 사용하지 않는 경우 두 애클리케이션의 context root가 /인 경우 context root가 동일하기 때문에 충돌이 발생합니다. 하지만 jboss-web.xml 파일에 가상 호스트를 지정하면 충돌이 발생하지 않습니다. 이것이 중요한 포인트 입니다.
 
설정하는 방법은 Tomcat과 좀 다릅니다. 
 
%APACHE_HOME/conf/httpd.conf 파일에 가상 호스트별로 제공할 static content 경로를 지정해줘야 합니다. 이것을 지정하지 않을 경우 403에러가 발생합니다.
# Include mod_jk configuration file
Include conf/mod-jk.conf

<Directory "/usr/local/jboss/server/default/deploy/TTT_TEST.war">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory "/usr/local/jboss/server/default/deploy/TTT.war">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
위 부분을 파일에 추가했습니다.
소스의 위치는 JBoss가 설치된어 현재 기동한 configuration 의 레벨 및에 있는 폴더입니다.
전 아래와같이 설치했습니다.
/usr/local/jboss/server/default/deploy/TTT.war          
                      =(사용할 호스트명)=> v1.taebal-test.co.kr
/usr/local/jboss/server/default/deploy/TTT_TEST.war  
                      =(사용할 호스트명)=> v2.taebal-test.co.ko
다음은 %APACHE_HOME/conf/httpd.conf 파일에 가상 호스트를 설정하는 부분입니다.
실제로 httpd.conf 파일에 직접 써도 되지만, 여기서는 mod_jk.conf 파일에 JBoss 연동 부분을 세팅해 놨기 때문에 mod_jk.conf 파일에 설정을 하도록 하겠습니다.
 
%APACHE_HOME/conf/mod_jk.conf 
<VirtualHost *>
    ServerAdmin XXXXX@gmail.com
    DocumentRoot /usr/local/jboss/server/default/deploy/TTT.war
    ServerName v1.XXXXX-test.co.ko
    ErrorLog logs/v1.XXXXX-test.co.ko-error.log
    CustomLog logs/v1.XXXXX-test.co.ko-access.log common

    LogLevel debug
    JkMountFile                 conf/uriworkermap_v1.properties
    <Directory "/usr/local/jboss/server/default/deploy/TTT.war/WEB-INF/">
        AllowOverride None
        deny from all
    </Directory>
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</VirtualHost>

<VirtualHost *>
    ServerAdmin XXXXX@gmail.com
    DocumentRoot /usr/local/jboss/server/default/deploy/TTT_TEST.war
    ServerName v2.XXXXX-test.co.ko
    ErrorLog logs/v2.XXXXX-test.co.ko-error.log
    CustomLog logs/v2.XXXXX-test.co.ko-access.log common

    LogLevel debug
    JkMountFile                 conf/uriworkermap_v2.properties
    <Directory "/usr/local/jboss/server/default/deploy/TTT_TEST.war/WEB-INF/">
        AllowOverride None
        deny from all
    </Directory>
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</VirtualHost>
파일 및에 위를 추가 했습니다. 어떤 내용인지는 설명을 드리면..
ServerAdmin : 관리자 메일
DocumentRoot : 실제 애플리케이션이 존재하는 위치
ServerName : 호스트 이름
ErrorLog : 에러 로그 생성 위치
CustomLog : 엑세스 로그 생성 위치
LogLevel : 로그 생성 레벨
JkMountFile : mod-jk의 설정파일
Directory : WEB-INF의 접근을 막음 (옵션)
Rewrite : http 로 들어오는 것을 https로 바꿔주는 역활 (옵션)
대충 위와 같은 내용입니다. 옵션이라고 적힌 부분은 필요하지 않으면 써주지 않아도 됩니다.
 
다음으로 %JBoss/server/$Configuration$/deploy/jbossweb.sar/server.xml 파일을 열어서 JBoss도 설정해줍니다. (난 $Configuration$ 의 부분이 default 이다.)
파일을 열고 아래 부분 Engine 테그 사이에 추가한다. <Host name="localhost"> 태그 위에 추가...
 <Host name="v1.XXXXX-test.co.ko">
     <Alias>v1.XXXXX-test.co.ko</Alias>
     <Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve"
cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"
transactionManagerObjectName="jboss:service=TransactionManager" ></Valve>
 </Host>

<Host name="v2.XXXXX-test.co.ko">
    <Alias>v2.XXXXX-test.co.ko</Alias>
    <Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve"
cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"
transactionManagerObjectName="jboss:service=TransactionManager" ></Valve>
</Host>
 
이렇게 하면 서버에서 설정하는 것은 모두 끝났다. 라고 생각하면 오산이다.... 

 

실제로 잘되는지 보기 위해서는 테스트 하려는 컴퓨터의 hosts 파일을 수정해야한다. 왜냐면 지정한 가상 호스트이름은 내가 임의로 지정한 이름이기 때문에 DNS서버에 등록이 되어있지 않아 IP를 찾지 못하기 때문이다. 
 
서버에서 테스트를 한다고하면...
/etc/hosts 파일을 열어 다음을 추가해준다.
192.OOO.OOO.OOO  v1.XXXXX-test.co.ko
192.OOO.OOO.OOO  v2.XXXXX-test.co.ko
 
여기서 192.OOO.OOO.OOO 은 서버 IP이다.
 
이제 마지막으로 남은 jboss-web.xml 파일의 설정을 보자.
애플리케이션에 WEB-INF/jboss-web.xml 파일을 만들고 아래처럼 설정하였다.
 
v1.XXXXX-test.co.ko
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web PUBLIC 
        "-//JBoss//DTD Web Application 5.0//EN" 
        "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"> 

<jboss-web>
	<context-root>/TTT</context-root>
	<virtual-host>v1.XXXXX-test.co.ko</virtual-host>
</jboss-web>
v2.XXXXX-test.co.ko
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web PUBLIC 
        "-//JBoss//DTD Web Application 5.0//EN" 
        "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"> 

<jboss-web>
	<context-root>/TTT</context-root>
	<virtual-host>v2.XXXXX-test.co.ko</virtual-host>
</jboss-web>
여기서 context root는 실제 프로젝트에서 /TTT이라고 사용을 하기 때문에 /TTT이라고 적어줬으며, 이부분이 필요없이 /로 하고싶다면 /로 적어주면 된다.
이렇게 하면 가상 호스트의 설정은 모두 끝~!!
 
부가적으로 https 를 사용한다면...%APACHE_HOME/extra/httpd-ssl.conf 을 수정해줘야한다.
mod-jk 연결해주는 파일을 가상호스트 설정시 썼던 파일로 바꿔줘야 한다. 아래 참조...
# 가상호스트 사용전 mod-jk 설정 파일
# JkMountFile conf/uriworkermap.properties 

# 가상호스트 사용 mod-jk 설정 파일 (mod_jk.conf 가상호스트 설정 부분의 파일을 적어줌)
JkMountFile conf/uriworkermap_v1.properties
JkMountFile conf/uriworkermap_v2.properties
728x90
반응형
728x90
반응형

얼마전에 설치한 오라클9i를 최신버전으로 바꾸려고 생각했었는데, 시간이 있어서 한번 만들어 보았다. 9i보다는 설치가 간편하며 생각보다 어렵지 않았다. 

천천히 따라하면 충분히 설치가 가능할거라 생각되며, 이 포스트는 오라클11g의 가장 기본적인 설치 방법이다. 따라서 test 서버용이지 실제 서버를 운영한다고 하면...좀 복잡한 설치 방법을 거쳐야 한다고 한다.

아래는 설치한 리눅스의 환경이다. (VMWare로 만들어진것이다.)
OS : CentOS5.3
CPU : 2
RAM : 512MB
HDD : 15GB

일단 설치된 프로그램을 아래 명령어를 실행하여 확인하자.

오라클 설치전에 최신프로그램으로 업데이트를 해서 그런지 별로 설치되는 프로그램이 많지 않았다.

설치가 완료되면 오라클유저를 생성한다.

커널에 대한 정보를 확인한다. (왜 확인하는지 모르겠지만...;;;;)

/etc/sysctl.conf 파일의 마지막 부분에 아래를 추가시킨다.

수정한 부분을 적용

/etc/security/limits.conf 파일을 열어서 실행되는 프로세스 수를 제한한다.
아래를 참고로 수정

/etc/pam.d/login 의 마지막 부분에 /lib/security/pam_limits.so 에 관련된 아래 부분을 추가한다.

oracle 계정의 .bash_profile 수정

오라클 계정으로 이동하여 다운받은 오라클의 압축을 푼다.

작업이 완료되면 oracle 계정으로 Xwindows를 실행하여 아래 명령어 실행

그러면 아래와 같은 화면이 나온다.

여기서 아래 화면과 같이 Advanced Installation 을 선택 후 NEXT!

Inventory Directory가 /home/oracle/oracle11/oralInventory로 변경하고 Next

만약 /home/oracle/oracle11 폴더의 소유자가 root 로 되어있다면 에러가 나올것이다. 그럼 아래와 같이 root로 접속해서 디렉토리의 권한을 바꿔준다.

다음화면에서 설치할 언어팩을 선택해야한다.

난 일본어를 추가했다. 

Install Loaction 부분이다. 이부분은 처음에 .bash_profile에 설정한 정보가 나올것이다.

check mode- 시스템이 사양이 올바른가에 대한 체크를 한다. 경고가 나오지만 그냥 무시하고 넘어간다.

Create Database 항목 체크후 NEXT

NEXT

데이타베이스 이름과 SID값을 입력한다. 
데이터베이스 이름 : ORACLE11
SID : ORCL

데이터베이스의 기본적인 설정인데, 일단 메모리는 기본적으로 256MB 그냥 그대로 사용했고...

언어셋은 아래와같이 UTF-8로 설정했다. 그리고 나머지는 디폴트 값으로...

NEXT

file System  - /home/oracle/oracle11/oradata

백업과 복구옵션...그냥 NEXT

관리 계정의 암호 설정인데, 모든암호를 하나씩 설정하기 짜증나서 한개의 암호로 만들어버렸다.

NEXT

NEXT

NEXT

설치 시작~

아래와 같은 화면이 나오면 그냥 OK!!

여기서도 OK!!!

설치가 완료되면 아래와 같은 창이 나타난다.
그러면 터미널을 열어 root 권한으로 로그인한 후 나와있는 두개의 경로로 들어가 sh를 실행한다.
실행후 창으로 돌아와 OK!!

설치 완료!!

이제 오라클을 구동해 보자. 명령어는 lsnrctl start 이다.

실행시 아래와 같은 오류가 나온다면....
[oracle@localhost bin]$ ./lsnrctl start
./lsnrctl: error while loading shared libraries: /home/oracle/oracle11/product/11.1.0/db_1/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied 

root 권한으로 로그인해 /etc/selinux/config을 열고 아래 부분을 수정한다. 수정후 재부팅 필수~
SELINUX=enforcing --> SELINUX=disabled


구동이 되는것을 확인했다면 이제 부팅시 자동으로 오라클이 동작하도록 설정해보자.
일단 /etc/init.d/oracle start | stop | restart 명령을 쓸수 있겠끔 스크립트 만들어준다.

시스템 부팅과 함께 다시 오라클이 구동될수 있도록 /etc/rc.local에 위에서 작성한 스크립트 파일을 삽입한다.

재구동시 확인



생각보다 그리 어렵지 않게 설치를 했다. 근데 역시 시간은 좀 걸린다.;;;
위 글은 http://bestakas.tistory.com/94 를 참고로 작성하였다. 

그럼~!!! 유용한 정보가 되었길...댓글은 포스팅의 힘~ 광고클릭은 블러거의 힘의 원천...^^;;

728x90
반응형
728x90
반응형

어제 설치한 JBoss를 아파치와 연동을 하는 부분을 시도해보겠다. 일단 준비물은 아래와 같다.

1. httpd-2.2.11
     (apache 2.2.11 openssl을 이용하여 https 서비스가 가능게 설치된것)
     ---> 설치방법 바로가기
2. JBoss 5.1.0 GA 
     (5.x 버전이면 크게 상관이 없을듯하다. 4.x 버젼과 조금은 차이가 있지만....)
     ---> JBoss 설치 바로가기
3. mod_jk 1.2.28
     (apache 2.2.11 설치방법의 글을 참조해서 설치...)


아파치 설치방법에 나온것은 Tomcat 과 연동이 되도록 적혀있다. 연동설정하는 부분을 제외한 부분은 모두 동일하다. 즉, 톰켓을 연동하던 JBoss를 연동하던...설정부분만 바꿔주면 된다는 뜻...!!!!

1. %APACHE_HOME/conf/httpd.conf 수정

2. %APACHE_HOME/conf/mod-jk.conf 생성

3. %APACHE_HOME/conf/workers.properties 생성

4. %APACHE_HOME/conf/uriworkermap.properties 생성

5. %JBOSS_HOME/server/default/deploy/jbossweb.sar/server.xml 수정

6. %APACHE_HOME/conf/extra/httpd-ssl.conf 수정 
(https 통신을 위한 설정 - https가 필요없다면 하지 않아도 된다.)

7. apache 구동

8. JBoss 구동

※ 주의
 JBoss만 구동하여 외부에서 접속하기 위해서는 구동시 -b 옵션으로 서버IP를 설정해야 하지만, 아파치와 연동시 -b 옵션을 주게되면 아파치와 연동이 안된다.
 %APACHE_HOME/conf/workers.properties 파일에서 설정한 host 부분때문인것 같은데, host 부분이 localhost로 되어있기때문에 127.0.0.1의 호출로 JBoss를 연결하지 못하기 때문인듯하다. 외부에서 직접 JBoss의 접속을 사용하지 않는다면 그냥 설정한데로 사용하면 될듯!!!

9. https://[서버]/jmx-console/ 테스트



10. https://[서버]/web-console/ 테스트


위 테스트는 https 를이용하여 접속한것이기 때문에 주소창이 빨강색으로 표시된다. https 를 사용하지 않고 하는 방법은 위에 https 설정만 빼고 하면 된다.
728x90
반응형
728x90
반응형


JBoss ... 일단 난 처음 들었다. 그래서 자료를 이리 저리 찾아봤는데.. tomcat과 상당히 유사한 웹서버이네..하지만 틀린것은 EJB를 무난하게 돌아가게 할수있다는거...그리고 오픈소스이지만, tomcat보다 관리적인 측면에서 좋다는거, 또 따지고 들어가면...메인터넌스가 있다는거...즉, 오픈소스라서 맘대로 가져다 사용해도 되지만, 관리를 받을려면 돈을 내고 관리받을수 있다. 유지보스 측면인가..?? 그리고 중요한건 Tomcat을 WAS라고 말하기 좀 뭐한 감이 있는데, 이건 WAS라고 말할수 있을듯...

아무튼 JBoss 북미지역에서는 점유율이 상당하다고 한다. 우리나라는 제우스, 웹투비를 많이 사용하지만...요즘 점점 들어가는 추세라고 하며, 일본도 꽤 많이 사용하고 있다고 한다. 레드헷에서 인수를 해서 지금 현재 레드헷리눅스 계열에서 굉장히 좋은 호환성을 보여주고 있는듯 하다.

그럼 일단 설치를 해보자. 설치는 굉장히 간단하다. 

1. JBoss 사이트에서 다운로드를 받는다. (http://www.jboss.org/)
    - 참고로 다운로드 받는 부분이 보이지 않는다...;;;; 
       열심히 이리저리 클릭해본 결과...아래 사이트로 들어가면 된다.
    
    - 난 여기서 5.1.0.GA 를 다운받았다. ( Description  이 Stable  인것이 정식 버젼인듯...)

2. 다운받은 파일의 압축을 풀자. 

3. 그리고 적당한 위치로 가져다 둔다음... JAVA_HOME 경로를 지정해주자.
- 윈도우의 경우 환경변수로 지정해두기를 권장함
- 리눅스의 경우 .bash_profile 에 설정한다. (아래 .bash_profile 파일 참조)
   --> JAVA_HOME 뿐만 아니라 JBOSS_HOME 도 설정해두자.

- 리눅스의 경우 jboss 라고 소프트 링크를 걸어 두는것이 좋다.
[root@Cent5JBossServer local]# ls -l
合計 152
lrwxrwxrwx  1 root root   16  6月 12 17:53 ant -> apache-ant-1.7.1
drwxr-xr-x  6 root root 4096  6月 27  2008 apache-ant-1.7.1
drwxr-xr-x 15 root root 4096  6月 26 15:03 apache2
drwxr-xr-x 15 root root 4096  6月 12 17:54 apache2.bak
drwxr-xr-x 15 root root 4096  6月 26 10:27 apache2.bak.ssl1
drwxr-xr-x  2 root root 4096  6月 26 09:58 bin
drwxr-xr-x  2 root root 4096  3月 10 07:42 etc
drwxr-xr-x  2 root root 4096  3月 10 07:42 games
drwxr-xr-x  3 root root 4096  6月 26 09:58 include
lrwxrwxrwx  1 root root   12  6月 12 17:49 java -> jdk1.6.0_14/
lrwxrwxrwx  1 root root   14  7月 16 11:27 jboss -> jboss-5.1.0.GA
drwxr-xr-x  8 root root 4096  5月 23 17:59 jboss-5.1.0.GA

drwxr-xr-x 10 root root 4096  6月 12 17:37 jdk1.6.0_14
drwxr-xr-x  4 root root 4096  6月 26 09:58 lib
drwxr-xr-x  2 root root 4096  3月 10 07:42 libexec
drwxr-xr-x  6 root root 4096  6月 26 16:36 openssl
drwxr-xr-x  2 root root 4096  3月 10 07:42 sbin
drwxr-xr-x  4 root root 4096  3月 10 07:42 share
drwxr-xr-x  2 root root 4096  3月 10 07:42 src
[root@Cent5JBossServer local]# pwd
/usr/local


4. 실행은 JBoss가 설치된 bin 폴더 및에 run.bat(윈도우) 또는 run.sh(리눅스)를 실행 시킨다.
- 실행시 참고 사항
run.sh -c minimal <enter> -> minimal로 configuration으로 구성된 서버 실행
run.sh -c all <enter>       -> all configuration으로 구성된 서버 실행
run.sh <enter>              
-> default configuration으로 구성된 서버 실행

- IP 바인딩 : JBoss를 구동시 IP 바인딩을 할수있는데, 좀 중요한 부분이다. 예를들어 그냥 run.sh를 실행 하였다면, 외부에서 접속이 안된다. 이것은 127.0.0.1 로 IP가 바인딩되었기 때문이다. 만약 외부에서 접속을 하려면, -b [IP] 옵션을 주면 된다.
(아파치랑 연동을 한다면 -b 옵션을 줘서는 안된다.)

5. 실행이 되었다면 http://localhost:8080 으로 접속한다. 설치는 쉽게 완료~!!!!!

(아래 화면은 외부에서 접속하기위해 구동시 -b 옵션을 주고 구동한후, 외부에서 접속한 화면이다.)

728x90
반응형
728x90
반응형










지난번 포스트에서 https 설정(apache2.2.x + tomcat6.0 + mod_jk1.2.28 + openssl0.9.8k (ssl인증 설치, https))을 알아보았다. 근데 https 라고함은 사용자들이 직접 https라는 프로토콜을 입력하지는 않는다. 그럼 어떻게 해야할까?

정답은 바로 http 로 들어오면 https로 돌려주는 방법을 사용하면 된다. 
예를 들어 http://test.com/ttt.html 을 사용자가 호출하면 아파치에서 https가 아닌 http 요청을 판단하여 https로 돌려줘 https://test.com/ttt.html 로 만들어 주는 것있다. 

처음엔 리다이렉트를 이용하여 자료를 검색하여 해봤으나 리다이렉트 방법으로는 잘 되지 않았다.
(왜 안되는지 잘 모르겠지만, 설정 방법을 다시 공부해야 할듯...)

리다렉트에 관한 자료
리라이트에 관한 자료
위 자료를 참조하면 리다이렉트와 리라이트에 대해서 알수 있을것이다.

그럼 내가 설정한 httpd.conf 파일은 아래와 같다.


httpd.conf 파일 가장 아랫부분에 추가해줬다.
728x90
반응형
728x90
반응형

CentOS5.2 (업그레이드를 해서 5.3) 에 SSL 인증..즉 HTTPS 서비스가 되도록 아파치를 설치를 해보도록 한다.

아파치는 2.2.x 버전이며 1.3.x 버전과 설치 방법이 조금 다르다. 

아파치 1.3.x 는 mod_ssl을 따로 설치를 해줘야 하지만 아파치 2.2.x 는 아파치안에 포함이 되었기 때문이다.

아파치 1.3.x. 는 이곳에서 설치를 참고

즉, 아파치2.2.x 가 설치가 되어있다면...다시 지우고 설치를 해야한다는 것이다..(설치시 ssl 옵션을 줬다면 상관없다...)

1) openssl 설치
아래 사이트에서 최신 소스를 다운로드 한다. (openssl-0.9.8k.tar.gz)
압축을 풀고 설치를 한다.


2) 아파치 설치
아파치는 httpd-2.2.11을 설치하였다.


3) mod_jk 설치
tomcat-connectors-1.2.28-src.tar.gz 을 설치하였다.
다운로드 하는 주소가 기억이...;;;;


4) SSL 생성
SSL에 관한 자세한 설명은 여기서 다루지 않도록한다.
인증기관에서 받아오는 방식은 아래 순서대로 하면 된다.
1. openssl을 이용요해서 개인키(비밀키) 생성
2. 개인키 확인
3. openssl로 CSR 생성
4. CSR 확인
5. 개인키 백업
6. 인증기관에 CSR 접수
7. 네트웍 확인 사항 - SSL 적용에 따른 방화벽(443번 포트 열어야 함), L4 switch 설정 확인
8. 인증기관에서 CSR 파일 답신 확인



5) 설정 파일 설정
(mod_jk 설정 파일)
# /usr/local/apache2/conf/workers.properties


# /usr/local/apache2/conf/httpd.conf


# /usr/local/apache2/conf/extra/httpd-ssl.conf


6) 아파치를 재구동하고 https 접속
접속하면 아래 화면처럼 나온다.


여기서 이 웹 사이트를 계속 탐색합니다(권장하지 않음) 를 누르면...



완료~!!!!!!ㅎㅎㅎㅎ
728x90
반응형
728x90
반응형

특정 디렉토리 이하에 대해서 접근을 제어하고자 할 때에는 .htaccess 를 사용하거나 httpd.conf 에서 <Directory> 를 이용하여 제어를 할 수 있지만, 만약 특정한 파일에 대해서 외부에서의 접근을 제한하고자 한다면 어떻게 하여야 할까? 
이때에는 Location 을 사용하면 된다. httpd.conf 파일에 아래와 같이 설정시 모든 디렉토리 이하의 secret.html 파일에 대해서는 192.168.1.1 에서만 접근이 가능하게 된다.

# httpd.conf  
#<Directory>로 안될경우가 있는데 이때 secret.html 대신 디렉토리를 써주면 디렉토리도 가능하다.
# 왜 안되는지는 잘 모르겠다...ㅡ.ㅡ;;
<Location /secret.html>
order deny,allow
deny from all
allow from 192.168.1.1
</Location>

만약 여러 도메인이 설치되어 있는 호스팅 서버의 경우 secret.tt.co.kr 도메인내 secret.html 에 대해서만 접근을 제어하고자 할 경우에는 아래와 같이 VirtualHost 설정에서 하면 된다.

<VirtualHost secret.domain.co.kr>
ServerAdmin anti@domain.co.kr
DocumentRoot /usr/local/apache/htdocs/secret/
ServerName secret.tt.co.kr
<Location /secret.html>
order deny,allow
deny from all
allow from 192.168.1.1 
</Location>
</VirtualHost>

또는 위와 같이 IP 가 아니라 특정한 ID/PW를 입력한 유저에 대해서만 특정 파일에 대하여 접근을 허용하고자 할 때가 있다. 이러한 경우에는 httpd.conf 에 아래와 같이 설정하면 된다.

<VirtualHost secret.domain.co.kr>
ServerAdmin anti@domain.co.kr
DocumentRoot /usr/local/apache/htdocs/secret/
ServerName secret.tt.co.kr
<Files secret.html>
AuthName "ID/PW 를 입력하세요."
AuthType Basic
AuthUserFile /usr/local/apache/htdocs/.htpasswd
Require valid-user
</Files>
</VirtualHost>

그리고 htpasswd –c .htpasswd id 로 .htpasswd 파일에 ID/PW를 생성하여 secret.html 에 접근시 ID/PW 를 정확히 입력한 유저에 대해서만 접근이 가능하게 된다.
 
728x90
반응형

+ Recent posts