'Ubuntu Linux'에 해당되는 글 4

  1. 2010.03.18 Ubuntu 에서 apache2에 SSL 설정 (5)
  2. 2010.03.15 Ubuntu 부트 메뉴 리스트
  3. 2009.02.27 Ubuntu 에서 Apache와 Tomcat 연결하기
  4. 2008.12.17 Ubuntu 에서 Remote Folder 마운트 하기

Ubuntu 에서 apache2에 SSL 설정

모든 작업은 su - 로.

작업 과정
 - OepnSSL 설치
 - SSL mod enable
 - openssl 로 private key 생성하기
 - csr 생성
 - crt 생성
 - private key, csr(crt) 파일 백업
 - apache에 ssl 설정
 - apache start

1. OepnSSL 설치
OpenSSL 은 SSL 을 구현한 인증 암호화에 대한 변환 등의 기능을 제공하는 툴이다.
최신 Ubuntu에는 설치되어서 나옴.

2. SSL mod enable
apache2 가 설치되어 있는 곳에서 mods-avaliable 을 살펴보면 ssl 이 있다는 것을 알수 있다. (ssl.conf, ssl.laod 파일이 있다)
root@seoeun-ubuntu:/etc/apache2# cd mods-available/
root@seoeun-ubuntu:/etc/apache2/mods-available# ls -l

그럼, ssl module 를 enable 시킨다.
root@seoeun-ubuntu:/etc/apache2# a2enmod ssl

3. openssl 로 private key 생성하기
root@seoeun-ubuntu:/etc/apache2# openssl genrsa -des3 -out sphere.key 1024

 - private key 확인
root@seoeun-ubuntu:/etc/apache2# openssl rsa -noout -text -in sphere.key


private key 내용


4. csr 생성
인증서 발급을 위해서는 위에서 생성한 private key 로 csr 을 생성해야 한다.
root@seoeun-ubuntu:/etc/apache2# openssl req -new -key sphere.key -out sphere.csr

csr 생성 메시지


  - csr 파일 확인
root@seoeun-ubuntu:/etc/apache2# openssl req -noout -text -in sphere.csr

5. crt 생성
csr 을 인증기관에 보내면 crt(certificated file) 파일을 보내준다.
내부 테스트요은 인증기관의 인증까지는 필요 없기 때문에 self-signed crt를 생성해서 사용하면 된다.

- Self-Signed crt 파일 생성
root@seoeun-ubuntu:/etc/apache2# openssl req -new -x509 -days 365 -key sphere.key -out sphere.crt

6. private key, csr(crt) 파일 백업
만들어진 private key 와 csr, crt 파일을 적당한 곳에 백업한다. /usr/share/doc/apache2.2-common/README.Debian.gz 에 보면 self-signed 한 key 는 /etc/ssl/private 아래 두라고 권고하고 있다.
이 private key 와 crt 파일은 apache ssl 설정에서도 참조한다.
$ mv /etc/ssl/private/ sphere*
$ sudo chmod 644 /etc/ssl/private/sphere.key

7. apache에 ssl 설정
- mods-enabled 설정
위에서 a2enmod ssl 을 했기 때문에 mods-enabled/ssl.conf 에 대한 symbolic link 가 mods-available/ssl.conf 가 생성되었다. 
/etc/apache2/mods-enabled/apachssl.conf -> ../mods-available/ssl.conf


- sites-enabled 설정
mods-enabled 와 마찬가지로 sites-enabled/ssl 에 sites-avaliable/ssl 로 symbolic link 를 건다. 이를 위해서 ssl  설정파일을 만들어야 하는데, sites-available/default-ssl 을 copy 하여 살짝 고쳐서 사용하도록 했다. (default-ssl 에 바로 수정해도 된다)

seoeun@seoeun-vaio:/etc/apache2/sites-available$sudo cp default-ssl ssl
seoeun@seoeun-vaio:/etc/apache2/sites-available$sudo vi ssl

<IfModule mod_ssl.c>

<VirtualHost *:443>
......
SSLEngine on
SSLCertificateFile    /etc/ssl/private/sphere.crt
SSLCertificateKeyFile /etc/ssl/private/sphere.key
.......
# Tomcat 과 연결한다면.
        JkMount /* ajp13_worker
</VirtualHost>
</IfModule>

$ a2ensite ssl
/etc/apache2/sites-enabled/ssl  -> ../sites-available/ssl


8. apache start
모든 것이 적용되었다면 apache를 start 시킨다. (sslstart 없어지고 그냥 start로 됨)

$ sudo apahec2ctl start
or
$ sudo /etc/init.d/apache2 restart

가끔 apache restart 가 안될 때, apache 를 모두 kill 하고, 그래도 다음과 같이 80을 누가 LISTEN 하고 있다고 하면,
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down

$ sudo fuser -k -n tcp 80

으로 죽여버리자.


apache start 메시지


만약 start 했는데, 다음과 같은 메시지가 뜬다면,
/etc/apache2/apache2.conf 에서 마지막 줄에 ServerName localhost 추가하면 된다.

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

 - 테스트
그럼, 이제 https://localhost:443 해보자.
FireFox 에서는 "본 연결은 신뢰할 수 없음" 하면서 상세 기술 정보를 보면 자기 스스로 서명하였으므로 인증서를 신뢰할 수 없다고 한다.
Chrome 에서도 "이 사이트의 보안 인증서는 신뢰할 수 없습니다" 하고 나온다.
Third Party 가서 인증 받아오라는 거겠지요.

아무튼 연결 성공, 아니면,,ㅠ.ㅠ

apache tomcat 연결 보기 





신고

'개발 > MISC' 카테고리의 다른 글

RailLink 무선랜카드 오류  (0) 2011.02.09
오픈 소스 소프트웨어 라이센스 가이드  (0) 2011.01.25
Thrift  (1) 2011.01.04
Self signed certificate Browser 에 적용하기  (0) 2010.03.25
Ubuntu 에서 apache2에 SSL 설정  (5) 2010.03.18
Ubuntu 에서 Apache와 Tomcat 연결하기  (0) 2009.02.27
TRACKBACK 1 Comment 5

Ubuntu 부트 메뉴 리스트

Ubuntu 에서 자동 업데이트 하고 나면 부트 메뉴가 마구 마구 늘어나는데,
이거 보기 싫으니깐, 리스트 정리를 하고 싶다면,

sudo
sudo gedit /
boot
boot/grub/menu.lst

gedit 에서 boot menu list 를 열어서 안쓰는 커널은 삭제 하면 된다. 
신고

'개발 > Linux' 카테고리의 다른 글

find 와 grep  (0) 2011.01.26
DEB package install, remove 하는 방법  (2) 2010.06.22
tar 사용법  (0) 2010.04.26
Ubuntu 부트 메뉴 리스트  (0) 2010.03.15
Ubuntu 에서 Remote Folder 마운트 하기  (0) 2008.12.17
TRACKBACK 0 COMMENT 0

Ubuntu 에서 Apache와 Tomcat 연결하기

- apache2 install
>apt-get install apache2 libapache2-mod-jk

- workers.properties 확인 (JVM 셋팅)
>cd /etc/libapache2-mod-jk/
>vi workers.properties
 : JVM 셋팅. worker 관련 properties 확인.
workers.java_home=/usr/lib/jvm/java-6-sun

worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13


- jk.load 에서 worker 위치 지정
>cd /etc/apache2/mods-enabled/
>vi jk.load
 : workers.properties 위치 지정
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkOptions +ForwardURICompatUnparsed

- JK Mount 하기
>cd /etc/apache2
>vi sites-enabled/000-default
 : 마지막 라인에 모든 들어오는 URL 을 ajp13_worker로 mount.
(unmout 하는 것도 여기서 셋팅)
        </Directory>

        JkMount /* ajp13_worker
</VirtualHost>

- apache2 restart
>apache2ctl restart

이렇게 하면 server로 들어오는 모든 request를 Apach에서 받아서 Tomcat 으로 전달해준다.
예를 들면, xxx.xxxx.com 을 요청하면 tomcat 의 xxx.xxxx.com:8080으로 연결된다.

여기서 중요한 건 worker.
Tomcat 세팅을 보면 AJP/1.3 이 8009로 연결된 것을 볼 수 있다.
Request 가 들어오면 JKMount 에 의해서 모든 request 는 ajp13_worker로 연결되고, ajp13_worker의 설정을 보면 포트가 8009로 설정되어 있고, 따라서 Tomcat에서 AJP/1.3을 8009로 listen 하고 있기 때문에 request는 tomcat으로 연결되는 것이다.

혹, restart 했는데, 아래와 같이 server name 이상하다고 하면,
apache2 apr_sockaddr_info_get failed xxxxxx

/etc/apache2/httpd.conf 에서 ServerName localhost 라고 추가하면 된다.

이제 tomcat start 하고, apache start 한 상태에서 URL 에 8080 포트 빼도 동작이 된다.

일단 지금은 여기까지. 또 필요하면 그때 그때 추가.








신고

'개발 > MISC' 카테고리의 다른 글

RailLink 무선랜카드 오류  (0) 2011.02.09
오픈 소스 소프트웨어 라이센스 가이드  (0) 2011.01.25
Thrift  (1) 2011.01.04
Self signed certificate Browser 에 적용하기  (0) 2010.03.25
Ubuntu 에서 apache2에 SSL 설정  (5) 2010.03.18
Ubuntu 에서 Apache와 Tomcat 연결하기  (0) 2009.02.27
TRACKBACK 0 COMMENT 0

Ubuntu 에서 Remote Folder 마운트 하기

ssh 를 사용해서 Remote Folder 를 마운트하는 방법.


1. 다음 모듈을 설치
(sudo su 로 가서 root 권한 받아서 하던가 아니면 매번 sudo 하던가)
sudo apt-get install sshfs

2. modprobe command 로 다음을 load
sudo modprobe fuse

3. Permission Setting
<username>대신에 ubuntu 사용자 이름으로.
sudo adduser <username> fuse
sudo chown root:fuse /dev/fuse
sudo chmod +x /bin/fusermount

4. logout 하고 다시 들어오기
usergroup에 사용자를 추가했기때문에 log out 했다가 다시 들어 오기.

5. local 에 디렉토리 만들기
mkdir local-folder

6. remote folder(remote-folder) 를 local에 (local-folder)로 연결하기
remote server : remote.server.com
sshfs -o umask=000 root@remote.server.com:/remote-folder local-folder
root 계정(예를 들면)으로d remote.server.com 에 접속하려고 하기 때문에 password를 물어본다.
그러면 root 의 password를 입력하면 된다.

## unmount
fusermount -u local-folder
or
umount local-folder


local-folder 는 그대로 남아있지만, remote-folder와의 연결이 끊어졌기 때문에 아무 내용이 없다.


신고

'개발 > Linux' 카테고리의 다른 글

find 와 grep  (0) 2011.01.26
DEB package install, remove 하는 방법  (2) 2010.06.22
tar 사용법  (0) 2010.04.26
Ubuntu 부트 메뉴 리스트  (0) 2010.03.15
Ubuntu 에서 Remote Folder 마운트 하기  (0) 2008.12.17
TRACKBACK 0 COMMENT 0

티스토리 툴바