반응형

코모도꺼를 받으면 일반적으로 pfx 파일을 준다. 

 

그리고 비밀번호를 준다.!!!

 

그렇다면 이를 이용해서 jsk (java 기반의 was)에 탑재하기 위한 인증서를 만드는 방법을 알아보도록 하자.!!

 

일단 FTP로 서버에 모두 다 업로드 하고 아래 명령어 하나만 치면 된다.

 

$ keytool -importkeystore -srckeystore _???????????????.pfx -srcstoretype pkcs12 -destkeystore cert.jks -deststoretype jks
Enter destination keystore password:   <= 요기는 jks 인증서 비밀번호 입력!
Re-enter new password:
Enter source keystore password:  <= 요기는 pfx 인증서 비번 입력 (이건 코모도에서 준다)
Entry for alias *.kpu.ac.kr successfully imported.
Import command completed:  1 entries successfully imported, 0 entries failed or cancelled

자 이제 인증서가 잘 만들어 졌는지 테스트 함해볼까?

 

$ keytool -list -v -keystore cert.jks
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name: *.????? (도메인 나옴)
Creation date: Nov 7, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 4
Certificate[1]:
Owner: CN=*.????? (도메인 나옴), OU=COMODO SSL Wildcard, OU="Hosted by Korea Information Certificate Authority, Inc.", OU=Domain Control Validated
Issuer: CN=COMODO RSA Domain Validation Secure Server CA, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB

 

자 이러고 톰캣실행시키면 ㅎㅎㅎㅎ

 

"Cannot recover key" 요 에러뜸 / 이건 keyStore랑 jks 만들때 key랑 비번이 달라서 뜨는거임.

 

좀 구찮음.

 

업체에서 보통 pks 줄때 비번 6자리 주는데 그대로 하고 싶어도 jks 만들때 6자리 이상 만들라고 해서

 

둘다 맞춰줄려면 업체꺼를 6자리를 jks만들때 6자리 이상한걸로 바꿔야함.

 

( keyStore 바꾸는법)

keytool -storepasswd -new (새로할 비밀번호) -keystore cert.jks

 

(jks 비번 바꾸는 법)
keytool -keypasswd -alias (alias 이름) -new (새로할 비밀번호)  -keystore cert.jks

 

반응형
반응형

MariaDB 를 쓰다보면은

 

대용량으로 데이터를 넣을 경우 하드디스크 용량이 꽉 차버리는 경우가 많다.

 

이 경우 대략 난감이다. 지금 나의 상황을 한번 보도록 하자!!

 

??????@????????:/etc/mysql$ df -kh
Filesystem      Size  Used Avail Use% Mounted on
udev             32G     0   32G   0% /dev
tmpfs           6.3G  650M  5.7G  11% /run
/dev/sdb2       1.8T  1.7T  361M 100% /
tmpfs            32G     0   32G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            32G     0   32G   0% /sys/fs/cgroup
/dev/sdb1       511M  3.4M  508M   1% /boot/efi
tmpfs           6.3G     0  6.3G   0% /run/user/1001

뜨아... 용량이 거의 없다 아무래도 대용량 db를 다루다 보니 저렇게 된 것같음.

 

그래서 mysql root로 로그인해서 한번 binary log가 얼마나 싸였는지 보았다.

 

MariaDB [(none)]> show binary logs;
+--------------------+-----------+
| Log_name           | File_size |
+--------------------+-----------+
| mariadb-bin.024778 | 104858649 |
| mariadb-bin.024779 | 104859056 |
| mariadb-bin.024780 | 104862325 |
| mariadb-bin.024781 | 104858302 |
| mariadb-bin.024782 | 104857991 |

.............................. (엄청많음 ~~~~~ 으아) 

역시 로그때문에 용량이 꽉 찬거였음.

 

실제 insert할때마다 이걸 다 로그로 남기니 전부다 용량 과다로 넘어가는 것 같다.

 

그래서 우선 로그를 지우자!

 

MariaDB [(none)]> purge binary logs before '2019-10-29 20:00:00'

우선 오늘 이시각 이전로그는 다~~~~ 날려버려랏!!!

 

저 명령어 실행시키고 나서 로그를 보니 몇개 안남음.

 

MariaDB [(none)]> show binary logs;
+--------------------+-----------+
| Log_name           | File_size |
+--------------------+-----------+
| mariadb-bin.025552 | 104868341 |
| mariadb-bin.025553 |  23062513 |
| mariadb-bin.025554 |       344 |
+--------------------+-----------+
3 rows in set (0.00 sec)

오오오오~~~ 딸랑 3개 남았다. 이제 로그 양도 줄이고 로그 경로도 바꿔야하니 아래 내용을 my.cnf에 추가했다.

 

log_bin                 = /??????/mariadb/log/mariadb-bin
log_bin_index           = /??????/mariadb/log/mariadb-bin.index

expire_logs_days        = 3     ==> 요건 3일치 보관함.
max_binlog_size         = 200M  ==> 요건 최대 용량

???? 라고 표현된건 HDD하나 사서 마운트 해서 추가한 경로임

 

요렇게 하면 용량이 확준다!!!

반응형
반응형

일반적으로 Tomcat 의 8080 포트를 80번과 연동할때에는 Apache의 Mod를 이용하기도 하지만 더 쉬운방법은 iptables 방화벽에서 포트포워딩을 이용하는 것이다.

포트포워딩을 하는 방법은 이미 이전 글에서 아주 많이 다뤄놨기 때문에 이번에는 어떤게 포트포워딩이 되어있고 이걸 어케 삭제하는지에 대해서 알아보도록 하자 

우선 매우 쉬움쉬윔!!!!

(1) 포트포워딩 확인하는 명령어

 $sudo iptables -t nat -L --line-numbers

그 결과를 볼까요?

Chain PREROUTING (policy ACCEPT)

num  target     prot opt source               destination

1    REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 8080

2    REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:https redir ports 8443

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)

num  target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)

num  target     prot opt source               destination 

위를 보니 1번에는 http 80번을 8080으로 포트포워딩 하는 것이고,

2번 은 https 즉 SSL 443 포트를 8443으로 변환시키고 있다. 


여기서 의문!!!!!!!! 왜 숫자를 보여줄까? ㅋㅋㅋ


..

..


삭제하라고 하는것이다.


(2) 포트포워딩 삭제방법

$ sudo iptables -t nat -D PREROUTING 2 

위 명령어를 써버리면 바로 2번 포트포워딩이 삭제된다.


참~~~~~~ 쉽군. ㅋㅋ


잊어먹지 말지어다!!!

반응형
반응형

인터넷에 Tomcat9 기준으로 인증서 설치한 후기가 너무 없어서 고생해서 하나 남겨본다.


(1) 인증서 구매

- 우선 인증서가 있어야 한다. 인증서를 어디서 살까 하다가 공짜사서 괜히 고생하기 싫어서 걍 돈을 좀 썼다

- 인증서는 보험이랑 호환성 등등의 다양한 조건에 의해서 1만원에서 100만원넘는 인증서가 있으나 우선 개발용이기 때문에 저렴한 1만원 짜리를 샀음.

- 아래 사이트에 가면 저렴하게 인증서를 살수가 있다.


단!!!) 인증서는 도메인이 들어가야하기 때문에 반드시 도메인을 먼저 사야 한다.


(2) 인증서 구매하게 되면 웹사이트에서 인증서를 다운로드 받을 수 있게 마이페이지에 가면 있다.

: 인증서를 다운로드 받을 때에는 용도에 맞게 다운 받으면 된다. pfx 같은 경우에는 IIS 서버에 설치할 경우에 다운로드 받는다.

  나는 TOMCAT에 설치할 거라서 모든 파일 다운로드 하고 jks 확장자의 인증서만 다운로드 받아 서버에 업로드함.

(3) Tomcat Home Directory 이하 conf 폴더에 업로드함.

: 내 개인서버 보안때문에 가릴것은 다 가리고 업로드함.

(4) Tomcat 서버 셋팅!

: server.xml를 열어서 아래와 같이 셋팅만 해주면된다.

   

     <Connector port="8080" protocol="HTTP/1.1"

                connectionTimeout="20000"

                 redirectPort="443" />   <= 8443을 443으로 꼭 바꿔주세요

 <Connector port="8443"

               protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="150"

               SSLEnabled="true"

               defaultSSLHostConfigName="sungrangkong.kr">

        <SSLHostConfig hostName="sungrangkong.kr">

            <Certificate certificateKeystoreFile="conf/sungrangkong.kr_20181204AAAA.jks"

                         certificateKeystorePassword="a12345"

                         certificateKeyAlias="sungrangkong.kr"

                         type="RSA" />

        </SSLHostConfig>

    </Connector> 


: 빨강색 부분만 하면된다. sungrangkong.kr 이라고 된 부분은 인증서 구매할때 입력한 도메인 주소를 넣고 certificateKeystoreFile 에는 인증서 구매 후 CA(인증기관)에서 제공한 비밀번호를 넣어주면 된다.

※ 간혹 certificateKeyAlias의 값이 다른 경우가 있다. 이 경우에는 아래 명령어를 통해서 alias의 이름을 명확히 알고 입력 하면된다.

$ keytool -list -v -keystore 인증서이름.jks

Enter keystore password:

Keystore type: JKS

Keystore provider: SUN


Your keystore contains 1 entry


Alias name: alias이름  <= 요기 값을 확인해주세요.

Creation date: Jan 5, 2021

Entry type: PrivateKeyEntry

Certificate chain length: 4 


(5) 자 이체 실행해볼까요?

: 잘뜨긴하는데 문제가 하나 있죠!!!! http로 접속했을때 https로 자동으로 들어가면 참 좋을듯 합니다.

우분투의 경우에는 80 이나 443 포트는 관리자 권한이 있을경우 실행이 되기 때문에 8080이나 8443 으로 셋팅하고 방화벽쪽에 셋팅해서 라우팅을 거는작업을 많이 합니다.


(6) 라우팅 작업

 sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

 sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443 

: 이렇게 작업하면 80->8080 으로 443->8443 으로 잘 가겠죠?


(7) http -> https로 변환작업

이거는 간단하게 tomcat home directory > conf > web.xml 를 편집하면 하실 수 있습니다.


  <!-- to use within your application.                                       -->

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>

        <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>


    <security-constraint>

        <web-resource-collection>

            <web-resource-name>Protected Context</web-resource-name>

            <url-pattern>/*</url-pattern>

        </web-resource-collection>

    <!-- auth-constraint goes here if you requre authentication -->

        <user-data-constraint>

            <transport-guarantee>CONFIDENTIAL</transport-guarantee>

        </user-data-constraint>

    </security-constraint>


</web-app>

 

: 위의 빨강으로 표기된 데이터만 복사해서 붙여넣고 톰캣 재시작 하시면 됩니다.



지금까지 tomcat9에 인증서를 탑재하는 과정을 알아보았습니다.

반응형

+ Recent posts