기본 콘텐츠로 건너뛰기

1월, 2017의 게시물 표시

keytool 사용법

keytool.exe -genkey -alias juheon -keyalg RSA -keypass 1234qwer -storepass 1234qwer -keystore juheon.jks  keytool.exe -export -alias juheon -storepass 1234qwer -file juheon.cer -keystore juheon.jks  keytool.exe -importkeystore -srckeystore juheon.jks -destkeystore juheon.key.p12 -deststoretype PKCS12  D:\Java\32bit\jdk1.5.0_22\jre\lib\security\cacert  D:\Java\32bit\jdk1.5.0_22\bin\keytool.exe -import -alias tsasample -keystore  D:\Java\32bit\jdk1.5.0_22\jre\lib\security\cacert -file D:\workspace\Servers\tsa-server-web-config\tomcat.cer  keytool -import -alias somansa -keystore C:\Program Files\Java\jdk1.8.0_102\jre\lib\security\cacert -file c:\somansa.cer #인증서 생성  keytool -genkey -alias keyAlias -keyalg RSA -keypass changeit -storepass changeit –validity 9999 -keystore keystore.jks  keytool -export -alias keyAlias -storepass changeit -file server.cer -keystore keystore.jks  keytool -import -v -trustcacerts -alias keyAlias -file server.cer -keystore cacerts.jks -keypass changeit

Apache : VirtualHost

Apache VirtualHost 설정에 대해 알아 본다. Apache 2.4를 기준으로 작성되었다. 2.2와는 설정이 다르므로 주의한다. 1. httpd.conf 설정 httpd.conf 파일에 virtual host 설정을 추가한다. 이 파일에 host 설정을 주렁주렁 추가하면 가독성이 떨어지므로 설정파일을 include 한다. httpd.conf 파일내에 주석처리된 부분을 해제한다. httpd.conf # Real-time info on requests and configuration #Include conf/extra/httpd-info.conf # Virtual hosts Include conf/extra/httpd-vhosts.conf # Local access to the Apache HTTP Server Manual #Include conf/extra/httpd-manual.conf httpd-vhosts.conf 파일을 열어보면 두개의 가상호스트가 설정되어 있다. 그 두개는 안쓸꺼니 주석 처리하고 새로운 설정을 추가한다. 2. httpd-vhosts.conf 파일 설정 conf/extra/httpd-vhosts.conf <VirtualHost *:80> ServerName www.test1.com ServerAlias test1.com DocumentRoot "C:/apache-tomcat-8.5.9/webapps/test1" ErrorLog "logs/www.test1.com-error.log" CustomLog "logs/www.test1.com-access.log" common <Directory "C:/apache-tomcat-8.5.9/webapps/test1"> AllowOverride None Require host test1.com DirectoryIndex

Tomcat, Apache HTTP Server : ajp 연동

Tomcat과 Apache HTTP Server를 mod_jk를 이용해 연동해 본다. 1. mod_jk 다운로드 예전에는 Tomcat 사이트에서 컴파일된 mod_jk를 제공하였으나 지금은 IIS를 제외한 나머지 ajp module은 제공하지 않고 소스만 제공한다. 받아서 컴파일하라고... 다행히 Apache HTTP Server를 컴파일해서 제공하는 사이트에서는 mod_jk 모듈도 컴파일해서 제공한다.  다운로드    2. mod_jk 설정 다운받은 mod_jk.so 파일을 "%APACHE_HOME%\modules" 로 위치시킨다. %APACHE_HOME%\conf\httpd.conf 파일을 열어 mod_jk module을 설정한다. # Load mod_jk module # Update this path to match your modules location LoadModule    jk_module  modules/mod_jk.so # Where to find workers.properties # Update this path to match your conf directory location (put workers.properties next to httpd.conf) JkWorkersFile conf/workers.properties # Where to put jk shared memory # Update this path to match your local state directory or logs directory # JkShmFile     logs/mod_jk.shm # Where to put jk logs # Update this path to match your logs directory location (put mod_jk.log next to access_log) JkLogFile     logs/mod_jk.log # Set the jk log level [debug/error/info]

Tomcat : connector

Tomcat connector에 대해 알아 본다. 1. Connector란 Tomcat은 connector interface를 제공한다. connector는 engine으로 들어 오는 요청(request)를 처리하는 역할을 한다. connector interface를 구현하여 시스템에 특화된 protocol을 처리하도록 개발할 수 있을 것이다. Tomcat에서는 기본적으로 여러 connector를 제공한다. 대표적으로 "HTTP/1.1", "AJP/1.3", SSL 등의 protocol을 처리하는 다양한 connector를 제공한다. server.xml ... <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="8443" /> ... <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> ... 2. ajp(Apache JServ Protocol)  connector WebServer와 연동시 사용하는 ajp connector는 WebServer로 부터의 fowarding을 처리하기 위한 connector이다. WebServer에서 주로 처리하는 정적 컨텐츠 외에 WAS에서 처리해야 할 요청을 넘길때 사용하는 protocol이다. WebServer에서 Tomcat으로 넘기는 요청(request)를 생성하기 위해 Tomcat 진영에서는 WebServer에 모듈을 제공한다. Apache HTTP Server의 경우는 mod_jk, Microsoft IIS는 I

Apache : start

가장 유명한 Http WebServer인 apache를 설치해본다. 1. 다운로드 http://httpd.apache.org/download.cgi 로 가면 apache 제단에서 공식 배포하는 apache를 받아 빌드하여 사용할 수 있다. 나는 윈도우를 사용하는 중이므로 일단 윈도우에 설치해본다. 대부분의 개발자들은 윈도우에서 빌드 할 생각이 없을것이다. 감사하게도 착하신 분들이 윈도우 환경의 Visual Studio 버젼, window bit 별로 빌드를 하여 설치본을 배포해주신다.  http://www.apachelounge.com/download/  사이트로 가면 윈도우 및 모듈들도 컴파일하여 제공하고 있다. "httpd-2.4.25-win64-VC14.zip"를 받아 본다. 2. 설치 httpd-2.4.25-win64-VC14.zip 압축을 푸니 폴더 구조가 아래와 같다. ReadMe.txt 파일을 열어보면 build를 어떻게 했니, 어떤 시스템에서 돌아 가니 등등의 정보들이 있다. 기본 System root 경로는 C:\Apache24로 잡혀있으며 Document root 또한 C:\Apache24\htdocs 경로로 잡혀있다. 다른 경로로 변경할 경우는 httpd.conf 파일의 ServerRoot 와 DocumentRoot 경로를 변경해야한다. 3. 실행 나는 기본 설정을 이용할 것이므로 "Apache24" 폴더를 C:\으로 이동하였다. 이동후 구동해보니 아래와 같은 경고창이 나를 반긴다. 내 PC에는 Visual C++ 재배포 가능 패키지가 설치되어 있지 않아서 위와 같은 경고창이 뜬다. Visual C++ 재배포 가능 패키지는 Visual Studio 2015를 사용하여 빌드된 C++ 응용 프로그램을 실행하는 데 필요한 런타임 구성 요소이다. Visual C++ 재배포 가능 패키지를  다운로드 를 받고 설치하면 콘솔창이 뜨면서 웹서버가 실행된다. 뭐라고

SQL : PK 삭제, 생성

PK 조회 SELECT A.TABLE_NAME, B.COLUMN_NAME, A.CONSTRAINT_NAME, A.CONSTRAINT_TYPE, A.SEARCH_CONDITION FROM USER_CONSTRAINTS A, USER_CONS_COLUMNS B WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.TABLE_NAME = '[테이블명 대문자]' AND A.CONSTRAINT_TYPE = 'P'; PK 삭제 ALTER TABLE [테이블명] DROP CONSTRAINT [인덱스 명]; INDEX 생성 CREATE UNIQUE INDEX [인덱스 명] ON [테이블명] ( [컬럼명], [컬럼명], [컬럼명] ); PK 추가 ALTER TABLE [테이블명]  ADD CONSTRAINT [인덱스 명] PRIMARY KEY  ( [컬럼명], [컬럼명], [컬럼명] );

Tomcat : context.xml 파일 사용

context.xml 파일을 사용하여 JNDI 등록 사용하는 방법 1. server.xml 파일에 JNDI 등록  server.xml 파일의 GlobalNamingResources노드에 Resource를 등록하고 Host 노드 하위 Context 노드에 ResourceLink노드를 등록하여 많이 사용했다. tomcat 5.5 이전 방식이다. server.xml ... <globalnamingresources>     <!-- Editable user database that can also be used by          UserDatabaseRealm to authenticate users     -->     <resource auth="Container" driverclassname="oracle.jdbc.OracleDriver" maxidle="4" maxtotal="8" name="global.db" password="password" type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:xe" username="user">   </resource> </globalnamingresources> ... 2. context.xml 파일 분리 위 방식처럼 server.xml 파일에 모든 context의 정보를 추가하는 방식은 서버에 대한 제어권이 없으면 정보를 변경하기 힘들다. Tomcat 5.5? 이후부터는 context.xml 파일을 분리하여 webapplication에서 별도로 자원을 등록 사용할 수있도록 제공한다. META-INF/context.xml 파일을 위치시키면 Tomcat은 구동시 META-INF 폴더의 context.xml 파일을

Tomcat : JDBC JSP

JNDI를 이용하여 Database 연동을 해본다. 1. Oracle XE 설치 Oracel 11g XE를 다운받아 설치.  Download URL  사용자 까지 생성. 2. Resource 등록 %CATALINA_HOME%\conf\server.xml 파일에 DB Resource를 GlobalNamingResources에 등록. 그래야 다른 context에서 참조해서 사용할 수 있다. <GlobalNamingResources>     <!-- Editable user database that can also be used by          UserDatabaseRealm to authenticate users     -->     <Resource name="UserDatabase" auth="Container"               type="org.apache.catalina.UserDatabase"               description="User database that can be updated and saved"               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"               pathname="conf/tomcat-users.xml" />     <Resource name="portal.ds"             auth="Container"             type="javax.sql.DataSource"             username="tomato"             password="tomato01"             driverClassName=&

Tomcat : start

적어도 intro에서 끝나지 않았다. 인내심없고 꾸준함도 없는데 일단 시작은 했다. 일단 설치부터 해보자. 1. Install " http://tomcat.apache.org " 사이트에 접속하여 Tomcat을 다운 받는다. 아래 이미지에 좌측 Download메뉴에서 받는다. 9버전은 알파버전이므로 패스. 지금은 Tomcat8 로 해보련다. 이미지 캡쳐하고 삽입하는거 귀찮다. 꼭 필요한 것만 해야겠다. "Core:" 에 zip 버전으로 받는다. 생각같아선 다른 다운로드 항목들이 어떤 것들이고 어디에 쓰이는지 다 확인하고 싶지만 그런거 다하다가는 시작하다 지쳐서 안할꺼 같다. 빨리 돌려보고 필요한것들 위주로 해봐야지. 필요하면 나중에 추가 하던지.... 아마 안할꺼야... 압축 받은 파일을 C:\에 풀었다. 폴더 명이 "apache-tomcat-8.5.9" 다. 한번 실행해보자. 이미지 추가했다. 귀찮아서 안할려고 했느데 한번 해봤다. 넣고 보니 뿌듯하네. 한게 뭐있다고... 2. Tomcat admin http://localhost:8080 으로 접속하니 고양이 색히가 있는 메인 페이지가 뜬다. Tomcat으로 운영하는 시스템의 운영환경에서 도메인치고 들어갔을때 이 페이지가 보이면 등에 식은땀 난다. 얼마 전에 경험했지... 슈벌 생각하기도 싫네. 사실 이 메인페이지에서 Tomcat의 모든 정보들을 다 제공한다. 설치 구동부터, 설정, 예제, 릴리즈 등등... 내가 영어만 잘했으면 참 좋겠다. 구글 뒤져볼 필요도 없이 여기 다있으니. 계속 글 쓸수 있으면 여기 제공하는 설정들 하나씩 정리해야지... 과연... 3. Hello world 난 개발자니까 hello world 찍겠다. 누가 그랬다 hello world 찍으면 그 언어 다 배운거라고... 이해 정도에 따라 다르겠지만 틀린말이라고 할 수는 없지. "C:\apache-tomca

Tomcat : intro

개발환경에서 가장 많이 사용하는 Tomcat 사용법을 정리해 보겠다. 이클립스에 붙여서 간단하게만 사용했던 tomcat을 http://tomcat.apache.org 사이트 document를 기준으로 제공하는 기능들을 내가 해보고 싶은거로 하나씩 돌려본다. 현재(2017.01) 기준 Tomcat은 8.5.9 까지 release 되었다. (9.0은 alpha 버전까지 나왔음) 진행은 8.5.9 기준으로 진행한다.  얼마나 진행하게 할지는 모르겠지만 일단 설치는 하겠지....