카테고리 보관물: config

Oracle remote connection configuration 외부 접속 설정하기 (listener.ora)

최초 오라클을 설치하고 나면 TCP/IP 설정은 localhost 만 지정되어있습니다.

이 설정 파일은 다음과 유사한 경로를 가집니다.

C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN\listener.ora

 

이 파일을 열어보면 다음과 같이 기본 설정되어있습니다.

# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN\listener.ora

# Generated by Oracle configuration tools.

 

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

)

)

ADR_BASE_LISTENER = C:\app\Administrator

 

Administrator 계정으로 설치를 시작하고 다음 > 다음 > 다음 > …… 을 연타하면 위와 같이 지정되죠!!!

바인딩할 추가 IP를 지정합니다.

 

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

)

(DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.211.55.13)(PORT = 1521))

    )

)

 

실행 경로(Path)는 지정되어있다고 가정하고 리스너 서비스를 재시작합니다.

 

C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN>lsnrctl stop

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 – Production on 26-6월 -2013 14:32:38

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))에 연결되었습니다

명령이 성공적으로 수행되었습니다

 

C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN>lsnrctl start

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 – Production on 26-6월 -2013 14:32:43

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

시작 tnslsnr: 잠시만 기다리세요…

TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 – Production

시스템 매개변수 파일은 C:\app\Administrator\product\11.2.0\orcl\network\admi

n\listener.ora 입니다

c:\app\administrator\diag\tnslsnr\jkf\listener\alert\log.xml (으)로 로그 메시지

를 기록했습니다

리스닝이: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))

리스닝이: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

리스닝이: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.211.55.13)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))에 연결되었습니다

리스너의 상태

————————

별칭                     LISTENER

버전                     TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 – Production

시작 날짜                 26-6월 -2013 14:32:49

업타임                   0 일 0 시간. 0 분. 5 초

트레이스 수준            off

보안                     ON: Local OS Authentication

SNMP                     OFF리스너 매개변수 파일   C:\app\Administrator\product\11.2.0\orcl\network\admin\listener.ora

리스너 로그 파일         c:\app\administrator\diag\tnslsnr\jkf\listener\alert\log.xml

끝점 요약 청취 중…

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.211.55.13)(PORT=1521)))

리스너는 서비스를 지원하지 않습니다

명령이 성공적으로 수행되었습니다

C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN>

리스너 서비스가 정상적으로 구동되면 이후부터 외부에서 정상적으로 접속 할 수 있습니다.

MariaDB Connect engine JDBC 연결 사용하기

MariaDB에서 이기종 데이터베이스를 사용하기 위해서 Connect 엔진을 사용합니다.

connect 엔진에 대한 MariaDB의 웹페이지는 아래를 참고하시면 됩니다.

https://mariadb.com/kb/en/library/connect/

connect 엔진을 이용해서 이기종 데이터 베이스를 연결할때 ODBC를 사용을 했습니다.

JDBC를 사용하기 위해서는 10.2.2 / 10.1.17 / 10.0.27 이상의 버전을설치하면 됩니다.

JDBC를 사용하는 방법은 아래 웹페이지를 참고합니다.

https://mariadb.com/kb/en/library/connect-jdbc-table-type-accessing-tables-from-another-dbms/

해당 웹페이지만으로 실제 사용하기에는 쉽지 않아서 아래 테스트를 한 내용을 정리해 봅니다.

먼저 MariaDB JDBC connector를 이용해서 같은 서버의 MariaDB를 JDBC로 연결해서 사용하는 방법은 아래와 같습니다.

  • JRE 설치
  • my.cnf 설정 : connect_jvm_path, connect_class_path
  • mariadb start
  • connect 엔진 global variables 확인
  • create table

# apt-get install default-jre

# vi my.cnf
##### connect engine
connect_jvm_path="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server"
connect_class_path="/ohnew/mariadb/connect/mariadb-java-client-2.2.3.jar"

# systemctl start mariadb

MariaDB> show global variables like 'conn%path';

MariaDB> create table jt_t1 engine=connect table_type=jdbc tabname=t1 connection='jdbc:mariadb://localhost:3306/ohnew' option_list="User=root,Password=";

아래는 다른 서버에 있는 oracle 데이터베이스를 JDBC로 연결해서 사용하는 방법입니다.

  • my.cnf 설정 : connect_jvm_path, connect_class_path
  • mariadb start
  • create server
  • create table

# vi my.cnf
##### connect engine
connect_jvm_path="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server"
connect_class_path="/ohnew/mariadb/connect/ojdbc6.jar"

# systemctl start mariadb

MariaDB> create server 'oracle' foreign data wrapper 'oracle' options (
HOST 'jdbc:oracle:thin:@192.168.100.101:1521:orcl',
DATABASE 'ORCL',
USER 'system',
PASSWORD 'manager',
PORT 0,
SOCKET '',
OWNER 'SYSTEM');

MariaDB> create table jt_ora_t1 engine=connect table_type=JDBC connection='oracle/ohnew.t1' SRCDEF='select c1 from ohnew.t1';

MariaDB 캐릭터셋을 UTF8 로 설정하기

한글을 사용하기 위해서는 인코딩을 euc-kr이나 UTF8로 바꾸는 것이 필요한데, 요즘은 대부분 UTF8을 사용하므로 UTF8로 설정해 봅니다.

MariaDB의 캐릭터셋을 UTF8로 설정하는 것은 MySQL과 유사합니다.

먼저, 현재 MariaDB의 캐릭터셋이 무엇으로 되어 있는지 확인부터 해보죠. (이미 UTF8로 되어 있다면 바꿀 이유가 없으니까요.)

먼저 터미널로 접속합니다. 그리고 MariaDB에 연결합니다.

$ sudo mysql -uroot -p                        <– root는 MariaDB 유저명

비밀번호를 입력하고 접속 되면, MariaDB에 c로 시작하는 변수값이 어떻게 설정되었는지 확인합니다.

MariaDB [(none)]> show variables like ‘c%’;

제 경우 아래와 같이 나오네요.

utf8로 설정되어 있는 부분들도 있지만, latin1으로 설되어 있는 부분들도 보이는군요.

utf8로 바꾸어 봅시다.

(모두 utf8로 되어 있다면 바꿀 필요 없습니다.)

먼저 quit; 명령으로 MariaDB를 빠져 나옵니다.

MariaDB의 my.cnf 파일을 수정해야 하는데, 우분투의 경우, /etc/mysql/ 디렉터리 밑에 있습니다.

만약을 대비해 먼저 my.cnf 파일을 백업합니다.

$ sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.ori

이제 본인에게 편한 에디터로 my.cnf 파일을 수정합니다.

아래 내용이 my.cnf에 있는지 확인하고 없으면 추가하고, 있으면 수정합니다.

(각 섹션별로 추가나 수정을 해 줍니다.)

 

[client]
default-character-set=utf8

[mysqld]
init_connect=”SET collation_connection=utf8_general_ci”
init_connect=”SET NAMES utf8″
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake

[mysql]
default-character-set=utf8

 

수정을 마쳤으면, MariaDB를 재시작합니다.

$ sudo service mysql restart

다시한번 MariaDB에 접속해서, 아래 명령어로 캐릭터셋이 바뀌었는지 확인합니다.

MariaDB [(none)]> show variables like ‘c%’;

이제 아래와 같이 나오네요.

정상적으로 utf8로 바뀐것을 확인 할 수 있습니다.

Tomcat 서버 HTTPS / SSL 적용

1. .keystore 파일 경로를 원하는 위치에 이동시킨다!!!

2. Tomcat 서버의 server.xml을 연다 .  (보통은 톰캣위치\conf 경로에 존재한다. )

server.xml을 열어보자!

3. 아래의 소스코드를 추가한다.

HTTPS통신을 할 포트번호를 정한다 ( https는 Port 443이 기본이다.  혹시 기존에 해당 포트가 사용중이라면 , 다른포트를 이용하자)

keystorepass에는 키스토어 비밀번호를 입력한다.

keystorefile에는 .keystore의 위치를 지정해준다.

1
2
3
4
5
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true" URIEncoding="euc-KR" maxThreads="150" scheme="https"
secure="true" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA"
keystoreFile="D:/Workspace/PLMS/PLAN_PLM/cert/certification/STAR.hankooktech.com.jks"
keystorePass="hankooktire" clientAuth="false" sslProtocol="TLS"/>

ORACLE JOB Schedule 등록방법

오라클에서는 유닉스의 cron tab과 비슷한 기능을 제공합니다.

오라클 자체적으로 프로시저, 패키지, 등의 object 를 oracle job queue에 등록후 스케쥴링 하여 사용할수 있습니다.

 

1. Job 관련 파라메터 확인

SELECT * FROM V$PARAMETER WHERE NAME LIKE ‘%job%’;

‘JOB_QUEUE_PROCESSES’의 값이 ‘0’ 이면 스케줄러가 작동하지 않는다.

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 1000;

 

2. Job 등록

DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => ‘plan_plm.T_IF_BATCH’
,next_date => to_date(‘2020-02-27 00:00:00’, ‘yyyy-mm-dd hh24:mi:ss’)
,interval => ‘TRUNC(SYSDATE+1)+6/24+30/1440’
,no_parse => TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE(‘Job Number is : ‘ || to_char(x));
END;

 

– next_date : Job이 처음 실행될 시간 설정

– Interval : Job 실행 후 다음 실행 간격 설정

SYSDATE+7 : 7일에 한번 씩 job 수행

SYSDATE+1/24 : 1시간에 한번 씩 job 수행

SYSDATE+30/ : 30초에 한번 씩 job 수행(24: 시간 당, 1440(24×60):분 당, 86400(24x60x60):초 당 )

TRUNC(SYSDATE, ‘MI’)+8/24 : 최초 job 수행시간이 12:29분 일 경우 매시 12:29분에 job 수행

TRUNC(SYSDATE+1) : 매일 밤 12시에 job 수행

TRUNC(SYSDATE+1)+3/24 : 매일 오전 3시 job 수행

NEXT_DAY(TRUNC(SYSDATE),’MONDAY’)+15/25 : 매주 월요일 오후 3시 정각에 job 수행

TRUNC(LAST_DAY(SYSDATE))+1 : 매월 1일 밤 12시에 job 수행

TRUNC(LAST_DAY(SYSDATE))+1+8/24+30/1440 : 매월 1일 오전 8시 30분

 

3. Job 확인

SELECT * FROM DBA_JOBS

SELECT * FROM USER_JOBS

SELECT * FROM ALL_JOBS

 

4. Job 삭제

EXECUTE DBMS_JOB.REMOVE(job_no);

 

5. Job 변경

1) CHANGE

: Job 의 Field를 변경

EXECUTE DBMS_JOB.CHANGE(job, what, next_date, interval);

EXECUTE DBMS_JOB.CHANGE(14144, NULL, NULL, ‘SYSDATE + 3’);

 

2) WHAT

: 수행작업을 변경

EXECUTE DBMS_JOB.WHAT(job, WHAT);

EXECUTE DBMS_JOB.WHAT(14144, ‘유저명.프로시저명’);

 

3) NEXT_DATE

: 다음 수행시간 변경

EXECUTE DBMS_JOB.NEXT_DATE(job, next_date);

EXECUTE DBMS_JOB.NEXT_DATE(14144, TRUNC(SYSDATE,’MI’) + 4);

 

4) INTERVAL

: 수행 간격 변경

EXECUTE DBMS_JOB.INTERVAL(job, interval);

EXECUTE DBMS_JOB.INTERVAL(14144, TRUNC(SYSDATE,’MI’)+30/1440);

 

5) BROKEN

: 수행 중지

EXECUTE DBMS_JOB.BROKEN(14144, TRUE);

 

6) RUN

: Job을 즉시 실행. BROKEN중이어도 실행. 실행 후 정상상태로 변경

EXECUTE DBMS_JOB.RUN(job);

 

이 오라클의 job 스케쥴링을 이용하면,

서버의 이용이 낮은 새벽시간대 등에 자원이 많이 들어가는 연산을 실행시키면, 오라클 서버의 부담을 줄일수 있습니다.

Windows Oracle ODBC 설정

오라클에 ODBC 를 이용해서 접속할 수 있습니다.

(* 파워빌더 10.5 는 오라클11g 이상 버전의 Native 드라이버를 지원하지 않지만 하위 버전의 클라이언트로도 상위 버전의 서버에 접속할 수 있습니다.)

오라클 ODBC 드라이버는

MS에서 제공하는 Microsoft ODBC for Oracle 과

오라클을 설치하면 제공되는 Oracle in OraDb1Xg_home1

두 가지가 있습니다.

Oracle in OraDb1Xg_home1 는 파빌에서 접속할 때 불필요한 메시지를 보여주기 때문에

Microsoft ODBC for Oracle 사용을 권장합니다.

여기서는 두 가지 모두 다루겠습니다.

 

윈도우7 기준으로

제어판 – 시스템 및 보안 – 관리도구 – 데이터 원본(ODBC)

를 실행하십시오.

 

시스템 DSN 탭을 선택하고 추가 버튼 클릭~

1. Microsoft ODBC for Oracle 로 설정하기

목록에서 Microsoft ODBC for Oracle 을 선택합니다.

(만약 목록에 보이지 않는다면 아래 사이트를 참고해서 설치하십시오.

설치 후 처음부터 다시해야 합니다.

http://support.microsoft.com/kb/313008)

마침 클릭~

데이터 원본 이름은 임의로 작성하면 됩니다.

여기서는 TestDB_odbc 라고 합니다.

파빌에서 ODBC 접속할 때 이 이름을 사용합니다.

서버는 Tnsname.ora 파일에 등록되어 있는 로컬 네트 서비스 이름입니다.

오라클 DB 생성 후 설정 글에서 등록한 TestDB_local 을 직접 입력하십시오.

사용자 이름는 입력하지 않고 비워둡니다.

확인 버튼 클릭~

시스템 DSN 에 방금 설정한 오라클 ODBC 데이터를 볼 수 있습니다.

Data Source Name 에 작성한 TestDB_odbc 가 이름 칼럼에 나타났습니다. 

파빌에서 접속할 때 TestDB_odbc 을 사용합니다.

 

2. Oracle in OraDb1Xg_home1 로 설정하기

오라클을 설치하면 위 화면에 오라클 드라이버가 표시됩니다.

여기서는 오라클11g 가 설치되었습니다.

오라클 드라이버를 선택하고 마침 버튼 클릭~

 

Data Source Name 은 임의로 작성하면 됩니다.

여기서는 TestDB_odbc 라고 했습니다. 파빌에서 ODBC 접속할 때 이것을 사용합니다.

 

TNS Service Name 은 Tnsname.ora 파일에 등록되어 있는 로컬 네트 서비스 이름입니다.

우측의 화살표를 클릭하면 나타나는 목록에서 선택하세요.

오라클 DB 생성 후 설정 글에서 등록한 TestDB_local 을 선택하면 됩니다.

 

User ID 는 입력하지 않고 비워둡니다.

OK 버튼 클릭~

 

시스템 DSN 에 방금 설정한 오라클 ODBC 데이터를 볼 수 있습니다.

Data Source Name 에 작성한 TestDB_odbc 가 이름 칼럼에 나타났습니다. 

파빌에서 접속할 때 TestDB_odbc 을 사용합니다.

CONNECT Storage Engine Oracle연동 (My-SQL에 Oracle db 연결)

Oracle DB가 아닌 MSSQL , Postgre 등의 연결도 해당 DB에서 제공하는 Driver 들을 설치 설정하면 크게 다르지 않다.

예를 들어

가입자(회원) 정보는 Oracle DB에 있고 실제 단위 서비스에 대해서는 MariaDB or MySQL를 사용하는 경우

회원 정보 1,2명의 데이터를 처리가 아니라 수백 수천만명의 데이터를 처리 해야 하는 경우…

이럴때..

MariaDB(MySQL)에서 제공하는 CONNECT Storage Engine을 통해서

MariaDB(MySQL) –> Oracle DB로 직접 억세스 해보자.

Connect engine 구성 방법 및 순서

  1.  연결하고자 하는 대상  DB의 ODBC Driver 설치
  2.  ODBC 설치및 설정
  3.  연결테스트(ODBC-Oracle)
  4.  MariaDB(MySQL) Connected Engine Plugin 설치 및 설정 
  5.  연동 테스트(MariaDB or MySQL – Oracle) 

1. Oracle DB ODBC Driver 설치 (Oracle client 설치)

Oracle db ODBC Driver 설치를위해 OracleClient 를 설치 한다.

Oracle Client(http://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html) 에서 OS 및 적절한 버전의 client를 다운받는다

요즘은 이런 드라이버 하나 받으려는데 로그인이 필요하다. 불편해 죽겠다…


rpm -ivh oracleclient/oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
rpm -ivh oracleclient/oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
rpm -ivh oracleclient/oracle-instantclient12.1-odbc-12.1.0.2.0-1.x86_64.rpm

단순하게 rpm Package를 받아 설치 한다. (우리가 필요한것은 basic, odbc 이지만 혹시 모르니 모두 설치 한다.)

참고로 zip 파일로 내려 받아 압축을 풀어 사용 할 수도 있다.

기본 설치시 Oracle client 는 /usr/lib/oracle/{version}/client64/lib/ 에 설치된다.

현재 최신 버전은 12.1 이다.  테스트 한 바로는 12.1버전을 사용시, 11 버전과 호환에 큰 문제는 없었다.

일단, 설치가 되었다면 오라클 클라이언트 Path 를 환경 변수에 잡아주자


$ vi ~/.bash_profile

$ export ORACLE_HOME=/usr/lib/oracle/12.1/client64
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib


// 저장후 이를 적용 하기 위하여 
$ source ~/.bash_profile

//환경변수 확인

$ env
LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/:/usr/lib/oracle/12.1/client64/lib/:

2. ODBC 설치및 설정(연결테스트)

*. Windows 환경의 ODBC 설정은 “Windows Oracle ODBC 설정” 글 참조

위의 그림에도 나와 있듯이 MariaDB(MySQL)에서 제공하는 CONNECT Storage Engine 은 ODBC를 사용 하므로 Odbc를 설치 한다. (ubuntu 는 당연히 apt-get install)


[root@TESTDB ~] yum install unixODBC
[root@TESTDB ~] yum install unixODBC-devel

[수동 설치]

unixODBC 소스를 내려 받아 압축을 풀고 compile 하여 설치


$ ./configure
$ make
$ make install

설치시 기본 설치 경로는 /usr/local 이며 별도의 설치 경로를 주고자 하는 경우 컴파일시 다음 조건을 준다

예) ./configure –prefix=/usr/local/unixODBC

ODBC설정 파일(odbc.ini, odbcinst.ini)의 경로는  {prefix}/etc 에 존재 하며,

이를 변경 하고자 하는 경우  –sysconfdir 옵션을 이용 할 수 있다.

예) ./configure –sysconfdir=/etc

odbc 설정

odbc설정은 2개의 파일을 편집하여 설정 합니다.(odbc.ini, odbcinst.ini)

yum or apt-get을 이용하여 설치 한 경우 odbc.ini, odbcinst.ini 파일은 /etc 디렉토리에 있습니다.

[odbcinst.ini편집]


$ sudo vi /etc/odbcinst.ini

[Oracle]
Description = Oracle ODBC driver for Oracle
Driver = /usr/lib/oracle/12.1/client64/lib/libsqora.so.12.1

Driver = oracle odbc client driver path

Driver = 오라클 client가 인스톨된 위치의 정확한 파일명을 주어야 합니다.

[odbc.ini편집]


$ sudo vi /etc/odbc.ini

[Oracle]
Driver = Oracle-12.1
ServerName = //192.168.0.2:1521/ORCL
UserName = system
Password = manager
Trace = yes
TraceFile = /tmp/odbc_oracle.log

Driver = Oracle (odbcinst.ini 에서 동일한 이름 사용)

ServerName = //192.168.0.2:1521/ORCL

serverName 은 oracle DB 의 정보를 정확하게 기입 합니다.

3. 연결테스트(ODBC-Oracle)

odbc 에서 제공 하는 isql툴을 이용해서 접속을 확인 합니다.


$ isql Oracle
+---------------------------------------+
| Connected!                      |
|                                 |
| sql-statement                    |
| help [tablename]                 |
| quit                             |
|                                 |
+---------------------------------------+
SQL>
SQL> select * from emp;
+-------+-----------+----------+-------+--------------------+----------
| EMPNO | ENAME     | JOB      | MGR   | HIREDATE           | SAL
+-------+-----------+----------+-------+--------------------+----------
| 7369  | SMITH     | CLERK    | 7902  | 1980-12-17 00:00:00| 800
…
+-------+-----------+----------+-------+--------------------+----------
SQLRowCount returns -1
15 rows fetched
SQL>

테이블 및 데이터 테스트 쿼리 사용 작동 확인 중 에러가 발생 하는 경우 isql –v Oracle 으로 에러메세지를 출력 하여 확인

4. MariaDB(MySQL) Connected Engine Plugin 설치 및 설정

mariadb connected engine 설치 및 활성화 Connected Engine은 mariaDB에서 plug in 형태로 제공되며, 버전 10.2 이상 상위 버전에서 지원 합니다. (10.0 이하 버전은 지원이 중단) root database 접속 후 플러그인 되어 있는 엔진 중 connect engine이 설치 되어 있고 활성화 되어 있는지 확인


$ mysql -uroot -p

MariaDB [(none)]>show engines;

+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
  | Engine             | Support | Comment                                                                    | Transactions | XA   | Savepoints |
  +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
  | CONNECT            | YES     | Management of External Data (SQL/MED), including many file formats         | NO           | NO   | NO         |

CONNECT Engine plug-in이 설치 되어 있는지 확인한다.

CONNECT Engine plug-in이 설치 되어 있지 않을 경우 connect-engine을 설치 합니다.


//connect-engine 인스톨 후, 엔진 추가 및 확인
$ yum install mariadb-connect-engine

$ mysql -uroot -p

MariaDB [(none)]> INSTALL SONAME 'ha_connect';
MariaDB [(none)]> show engines;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+

| Engine             | Support | Comment                                                                    | Transactions | XA   | Savepoints |

+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+

| CSV                | YES     | CSV storage engine                                                         | NO           | NO   | NO         |

| MRG_MyISAM         | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |

| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |

| BLACKHOLE          | NO      | /dev/null storage engine (anything you write to it disappears)             | NULL         | NULL | NULL       |

| MyISAM             | YES     | MyISAM storage engine                                                      | NO           | NO   | NO         |

| CONNECT            | YES     | Management of External Data (SQL/MED), including many file formats         | NO           | NO   | NO         |

| InnoDB             | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |

| ARCHIVE            | NO      | Archive storage engine                                                     | NULL         | NULL | NULL       |

| FEDERATED          | YES     | FederatedX pluggable storage engine                                        | YES          | NO   | YES        |

| PERFORMANCE_SCHEMA | YES     | Performance Schema                                                         | NO           | NO   | NO         |

| Aria               | YES     | Crash-safe tables with MyISAM heritage                                     | NO           | NO   | NO         |

+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+

11 rows in set (0.01 sec)

7. 연동 테스트(MariaDB or MySQL – Oracle)

이제  MariaDB에서 Oracle로 직접 연결해 보자.

MariaDB [testdb]> CREATE TABLE emp_oracle ENGINE=CONNECT CONNECTION='DSN=ORCL;UID=system;PWD=manager' `TABLE_TYPE`=ODBC `tabname`='emp' ;

Query OK, 0 rows affected (0.04 sec)


MariaDB [testdb]> select * from emp_oracle;
+-------+-----------+----------+-------+--------------------+----------
| EMPNO | ENAME     | JOB      | MGR   | HIREDATE           | SAL
+-------+-----------+----------+-------+--------------------+----------
| 7369  | SMITH     | CLERK    | 7902  | 1980-12-17 00:00:00| 800
…
+-------+-----------+----------+-------+--------------------+----------
15 rows in set (0.11 sec)

MariaDB [testdb]>

위 처럼 oracle DB의  emp Table을 직접 조회 할수 있다.  접속 유저의 권한이 있다면 Insert, Update 역시 가능하다.

한계점은 당욘히 존재 한다.

Blob/Text 등의 data Type은 지원하지 못한다.

또한, Oracle, MySQL등에서 지원하는 LinkDB , LinkedServer처럼 한번 연결로 모든 테이블 억세스는 되지 않는다.  테이블당 링크 테이블을 생성해 이용해야 한다. (이 부분은 필요한 Oracle에 view를 생성하고 이 View Table를 이용하는 편법을 이용할 수 있다)

[참고] 

테스트를 하면서 LD_LIBRARY 문제가 발생했다. 이유는 MariaDB(MySQL) 의 구동이 MySQL Damon에 의해서 실행되는데 MySQL User에 LD_LIBRARY Path 설정이 되지 않아서 발생하는 오류 였다.

이럴경우 아래와 같이 LD_LIBRARY 를 추가 할 수 있다.

[Oracle library 추가 방법]


/etc/ld.so.conf.d/ 디렉토리에 파일(*.conf)을 만들어 추가

cd  /etc/ld.so.conf.d/
vi oracle.conf
/usr/lib/oracle/12.2/client64/lib

프로젝트 중

고객에게 문자 발송 데이터를 만들어 문자 발송 시스템으로 데이터를 넣어 주어야 하는 프로젝트가 있었다,

고객 정보는 Oracle DB에 있었고,

문자 발송 대상 고객리스트는 엑셀로 전달되었다.

여러가지 문제로 해당 시스템은 MariaDB로 구성되어 있어서 엑셀로 전달되는 대상 고객 정보를 고객 DB(Oracle)에서 얻어와야 하는데 한번에 전달되는 엑셀의 고객수가 100만건이 넘었다.

고객정보 소스는 엑셀이고, 고객 ID를 이용해서 필요한 고객정보(Oracle DB)를 얻어와야 하는데  100만건이 넘는 데이터를 프로그램에서 loop 를 돌면서 처리 하기에는 속도의 문제가 있었으나 Connected engine을 이용해 query 한번으로 처리 할수 있었다…

MySQL DB-Link 구현을 위한 FEDERATED 엔진 활성화 및 테이블 생성

Oracle 과 MSSQL에 있는 DB Link 서비스를 MySQL에서 지원하는 FEDERATED 엔진을 이용하여 구현하는 방법 입니다.

1. 설치되어 있는 엔진 확인

– CentOS에서 yum 으로 설치했을때 기본적으로 사용 가능한 엔지들의 목록 입니다.

2. 엔진을 사용할 수 있도록 설치

 

3. FEDERATED 엔진의 설치여부 확인

– FEDERATED 엔진이 목록에 표시되지만 사용 가능하지 않은 상태 입니다.

4. 엔진 사용 가능 하도록 my.cnf 수정

– [mysqld] 하위에  federated 항목을 추가 합니다.

5. 엔진의 상태를 확인 합니다.

– FEDERATED 엔진의 Support 상태가 YES 로 변경 되었습니다.

—————————– FEDERATED 엔진을 사용하여 테이블을 생성하여 원격지 테이블과 연결 ————————-

1. 원격지에 테이블을 생성 합니다.

CREATE TABLE `cityholic_db`.`cart_product` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘아이디’,

`users_id` bigint(20) unsigned NOT NULL COMMENT ‘고객아이디’,

`product_id` bigint(20) NOT NULL COMMENT ‘상품아이디’,

`option_code` varchar(50) NOT NULL COMMENT ‘상품옵션코드’,

`quantity` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘상품 개수’,

PRIMARY KEY (`users_id`,`product_id`,`option_code `),

UNIQUE KEY `id_UNIQUE` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’카트에 담긴 상품’;

2. 로컬에 테이블을 생성 합니다.

CREATE TABLE `cityholic_db`.`cart_product` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘아이디’,

`users_id` bigint(20) unsigned NOT NULL COMMENT ‘고객아이디’,

`product_id` bigint(20) NOT NULL COMMENT ‘상품아이디’,

`option_code` varchar(50) NOT NULL COMMENT ‘상품옵션코드’,

`quantity` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘상품 개수’,

PRIMARY KEY (`users_id`,`product_id`,`option_code `),

UNIQUE KEY `id_UNIQUE` (`id`)

) ENGINE=FEDERATED DEFAULT CHARSET=utf8 COMMENT=’카트에 담긴 상품’

CONNECTION=’mysql://root:dldusrn1@10.3.0.27:3306/cityholic_db/cart_product’;

– 원격지 테이블 Create 문에서 ENGINE  수정, CONNECTION 옵션 추가  작업만 수행 합니다.

– CONNECTION 옵션의 구성은 다음과 같습니다.  ‘mysql://[계정]:[비밀번호]@[서버ip]:[port]/[원격지DB명]/[원격지 테이블명]’

3. 이상 모든 설정을 완료 했다면 로컬에서 원격지의 Table을 로컬 테이블 처럼 사용 가능합니다. select, insert, update, delete 모두 가능 합니다.

 

Oracle의 DB Link 생성 및 사용법

1. 권한
DB Link를 생성 권한이 있어야 함.

– 공용 데이터베이스 링크생성 권한부여

GRANT CREATE PUBLIC DATABASE LINK TO [사용자 계정] ;

– 공용 데이터베이스 링크삭제 권한부여

GRANT DROP PUBLIC DATABASE LINK TO [사용자 계정] ;

– 데이터베이스 링크생성 권한부여

GRANT CREATE DATABASE LINK TO [사용자 계정] ;

※ 공용이 아닌 단순 데이터베이스 링크의 경우 삭제권한이 별도로 없다

(생성권한 만으로도 삭제 가능)

 

2.생성및 삭제
 – 생성 1

CREATE [SHARED][PUBLIC] DATABASE LINK LINK_NAME
[CONNECT TO CURRENT_USER]
[USING ‘connect_string’]

CREATE DATABASE LINK <LINK_NAME>
CONNECT TO <연결하고자 하는 user> IDENTIFIED BY <연결하고자 하는 user password>
USING <TNS정의명>

 – 생성 2
– TNS에 정의하지 않고 생성
– ORA-12154: TNS:could not resolve the connect identifier specified. 해당 오류 발생시 사용

CREATE PUBLIC DATABASE LINK LINK_NAME
CONNECT TO <연결하고자 하는 user>
IDENTIFIED BY <연결하고자 하는 user password>
USING ‘(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST=127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)’

;

3. 사용방법
SELECT COUNT(*) FROM TABLE_NAME@DATA_LINK

# 생성시 권한 오류

SYSDBA 계정으로 권한 추가 : PUBLIC 명시 여부 체크
— PUBLIC DB LINK 생성  권한
SYS@ORACLE11> GRANT CREATE PUBLIC DATABASE LINK TO SCOTT;

— 생성권한 제거
SYS@ORACLE11> REVOKE CREATE PUBLIC DATABASE LINK FROM SCOTT;

— PUBLIC 링크 제거 권한
SYS@ORACLE11> GRANT DROP PUBLIC DATABASE LINK TO SCOTT;

— PUBLIC 링크 제거
DROP PUBLIC DATABASE LINK “링크명” ;


# DB 링크 사용시 에러
ORA-01017 invalid username
ORA-02063 line가 선행됨

# 해결방법 참고사이트 :http://www.happytomorrow.net/103
1) 11g에서 대소문자를 구분하지 않도록 설정.
– 다음의 명령어로 대소문자를 구분하지 않도록 설정할 수 있다.(11g서버에서 설정해줘야 함)

ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;

하지만… 저 값이 true로 되어있는 것은 다 이유가 있고… true가 default값인데… 난 default값을 바꾸는게 너무 찜찜하다…
그래서 다음 방법이 있다.

2) DB링크 생성시 접속 사용자 패스워드 부분에 “pass” 요런식으로 쌍따옴표를 붙인다.
create database link dblink
connect to SUNSHINY identified by “pass”
using ‘<TNS정의명>’;

 

# 아래 내용 출처 : 오라클 클럽

☞ 데이터베이스 링크(Database Link)데이터베이스 링크는 클라이언트 또는 현재의 데이터베이스에서 네트워크상의 다른 데이터베이스에
접속하기 위한 접속 설정을 정의하는 오라클 객체 입니다.

◈ 우선 고려되어야 사항은 ORACLE INSTANCE가 두개이상이고 각각의 HOST NAME과 ORACLE_SID는
다르고  NLS_CHARACTER_SET은 동일하게 되어 있어야 합니다.

– 만약 같은 MECHINE에서  INSTANCE의 ORACLE_SID가 같다면 TNS ERROR가 발생 합니다.
– 또한 미래를 위해 다른 MECHINE이라 할지라도 ORACLE_SID는 규칙에 의해 다르게 가져가는
것이 좋습니다.
– 그리고 NLS_CHARACTER_SET이 동일하게 되어 있지 않으면 DATA 입출력시 ?????로 나타납니다.
– 데이터베이스 링크로 연결되는 서버에 리스너가 꼭 띄어져 있어야 됩니다

[Syntax]

– PUBLIC : 오라클 시노님과 마찬가지로 PUBLIC 옵션을 사용하면 공용 데이터베이스 링크를 생성
할 수 있습니다.  PUBLIC 옵션을 사용하지 않으면 링크를 생성한 자신만 사용 할 수 있습니다.

– link_name : 데이터베이스 링크의 이름을 지정 합니다.

– service_name : 네트워크 접속에 사용할 오라클 데이터베이스 네트워크 서비스명을 지정 합니다.

– username, password : 오라클 사용자명과 비밀번호를 지정 합니다.

☞ 데이터베이스 링크의 사용

— 데이터베이스 링크 생성 예제

SQL>CREATE DATABASE LINK test_server
CONNECT TO scott IDENTIFIED BY tiger USING ’testdb’;

이 데이터베이스 링크 생성 문장에서 USING다음에 오는 testdb는 tnsnames.ora파일에 정의되어
있어야 합니다.

# 아래의 tnsnames.ora 파일은 오라클이 설치된 서버의 파일을 말합니다.
====== tnsnames.ora =====
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 211.109.12.123)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle)
)
)
=========================

— 데이터베이스 링크를 통한 데이터의 조회..
SQL>SELECT ename FROM emp@test_server;

–시노님을 생성해서 사용하면 더욱더 편리하게 사용 할 수 있습니다.
SQL> CREATE SYNONYM emplink FOR emp@test_server;

— 시노님을 통한 조회
SQL>SELECT ename FROM emplink;

데이터베이스 링크의 삭제..
SQL>DROP DATABASE LINK test_server;

 

 

무료 SSL 보안 인증서 발급받기 (Free SSL Certificate)

Let’s Encrypt 에서 시작된 무료 SSL 인증서 발급 서비스는

비싼 년간 갱신 비용을 지불하면서 유료로 SSL 인증서를 발급받아 유지하지 않아도 되는 획기적인 방향을 제시했습니다.

물론 3개월마다 인증서를 갱신해야 하는 번거로움은 있습니다.

이런 불편함에도 불구하고 와일드카드 인증서와 멀티도메인 인증서까지 무료로 발급할 수 있는 매력은 소규모 사이트에 SSL 보안 인증서를 적용하는 부담을 상당히 줄여줍니다.

또, 3개월마다 갱신해야하는 인증서를 자동으로 갱신처리를 해주는 프로그램들도 있기 때문에 생각보다 갱신으로 인한 불편함은 적은 편입니다.

무료 SSL 인증서를 발급할 때 좋은 점은 웹서버에서 미리 인증서 요청을 생성하지 않아도 되는 것입니다.

무료 SSL 인증서를 발급해봅니다.

무료 SSL 인증서 발급은 2단계로 진행됩니다.

첫번째 단계는 인증서를 발급.

두번째 단계는 발급받은 인증서를 바로 웹서버에 적용 가능한 SSL 인증서 백업 파일로 변환.( *.pfx파일 ) 하는 것입니다.

발급받은 인증서를 인증서 백업파일로 변환하는 것은, 최초 인증서 요청을 생성하지 않았기 때문에 발급 받은 인증서 만으로로는 웹서버에 적용할 수 없기 때문에 인증서를 백업했다 복원하는 방식으로 인증서를 설치할 수 있도록 하기 위해서 입니다.


무료 SSL 인증서 발급_

인증서를 발급받기전 준비사항

무료 SSL 인증서를 발급받으려면 도메인 소유권 증명을 해야하기 때문에 다음 2가지중 한가지가 가능해야 합니다.

A. 도메인 인증 파일을 업로드하는 방식 – 무료 SSL 인증서를 발급받는 도메인이 설정된 웹호스팅, 또는 단독 서버가 있어야 합니다.

해당 웹사이트에 폴더 생성 및 파일 업로드가 가능해야 합니다. 또는 FTP서비스가 웹사이트로 설정된 서버(호스팅) 폴더와 연결되어 있어야 합니다.

“http://도메인” 으로 해당 사이트에 접근 가능해야 합니다.

실제 웹사이트는 구성되어있지 않아도 됩니다. 특정 폴더 위치에 소유자 인증 파일에 접근만 가능하면 됩니다.

B. DNS를 이용해 도메인 인증 키값을 TXT 필드에 적용.

DNS 호스팅을 하고 있는 경우(웹호스팅, 또는 외부 네임서버 서비스 이용) DNS 관리 기능으로 TXT 필드를 생성할 수 있어야 합니다.

자체 네임서버(DNS 서버)를 사용하는 경우 네임서버에 TXT 필드를 추가하면 됩니다.

본인 소유 도메인이 아니면 SSL 인증서는 발급받을 수 없습니다.

https://www.sslforfree.com/

사이트에 접속합니다.

영어 몰라도 발급받는데는 별 어려움은 없지만, 어설픈 한글사이트라도 원한다면 우측 상단에 구글 번역기가 붙어있으므로 구글 번역기를 이용해도 됩니다.

영문으로 설명합니다.

맨 위에는 도메인 입력난이 있습니다.

여기에 무료 SSL 인증서를 발급받을 도메인 명을 입력하게 됩니다.

보통은 서브도메인 없이 1차 도메인명(mydomain.com)만을 입력하면 됩니다.

설명에서는 2차 도메인을 위한 무료 SSL 인증서를 하나 발급받아봅니다.

그 아래에는 간단한 사용 설명과 지원사항 등일 자세하게 나와있습니다.

도메인을 발급받기 전에 알아두면 좋은 내용입니다.

Let’s Encrypt 무료 SSL 인증서는 상용 인증서 발급 서비스와 동일한 수준의 다양한 인증서 발급 기능을 제공합니다.

Let’s Encrypt 무료 SSL 인증서 발급 지원 사항

Let;s Encrypt 기반 무료 인증서 발급은 아래와 같은 다양한 인증서 형태의 SSL 인증서 발급을 지원합니다.

1. 와일드카드 SSL 인증서 지원

1차 도메인 앞에 서브도메인으로 “*” 를 붙여 와일드카드 SSL 인증서를 지원합니다.

*.mydomain.com

으로 인증서를 발급받으면 mydomain.com 하위 도메인 모두에 대해서 SSL 적용이 가능합니다.

2. www 도메인 인증서 자동 생성

1차 도메인명으로 SSL 보안 인증서를 생성하면 자동으로 www 하위 도메인에 대한 인증서까지 생성 해줍니다.

한번에 SSL 인증서가 2개가 발급됩니다.(1차 도메인용, www 서브 도메인용)

3. 서브도메인 별로 개별 SSL 인증서 생성

개별 서브 도메인 단위로 SSL 인증서를 1개씩 생성

4. 멀티도메인 인증서 생서 지원

도메인 입력난에 공백으로 띄워 2개 이상의 도메인을 입력하면 입력한 도메인들 모두에 대한 인증서를 일괄 생성해줍니다.

1차 도메인을 입력하면 자동으로 www가 붙은 하위도메인까지 입력해줍니다.

도메인 소유권 인증을 하는 3가지 방법(가능한 방법으로 택1)

무료 SSL 인증서를 발급할 도메인 명을 입력하고 “Create Free SSL Certificate” 버튼을 누릅니다.

소유권 인증 방법을 선택하는 화면이 나옵니다.

소유권 인증 방법은 총 3가지가 가능합니다.

1. “Automatic FTP Verification” – FTP 를 이용한 자동 처리 방식

2. “Manual Verification” – 소유권 인증 파일을 다운로드받아 직업 업로드

3. “Manual Verification” – DNS에 TXT 레코드로 소유권 인증 키를 추가

1과 2번은 웹호스팅 공간, 또는 서버에 특정 폴더가 만들어지고, 그 안에 소유권 인증 파일을 업로드하면 sslforfree.com 서버가 해당 “http://도메인/소유권인증파일” URL로 접근해 소유권이 있는지 확인합니다.

http로 웹사이트에 접근이 가능해야 합니다.

1번은 웹사이트와 경로를 공유하는 FTP 가 있어야만 사용 가능합니다.

FTP 정보 입력 양식에 FTP 접속 정보를 입력하면 sslforfree.com 서버에서 자동으로 해당 FTP로 로그인 해 폴더를 생성하고, 소유권 인증용 파일 업로드까지 해줍니다.

3번은 DNS에 TXT 레코드를 추가할 수 있어야 합니다.

네임서버 호스팅을 이용하는 경우에도 대부분 DNS 관리 기능은 제공하므로 이 기능을 이용하면 됩니다.

http로 접근가능한 웹사이트가 아직 준비되어 있지 않은 경우, 또는 인터넷으로 접근할 수 없는 인트라넷, 개발용 서버, 방화벽 뒤에 있어서 80포트 접근이 제한된 경우 DNS 인증 방식을 사용하면 됩니다.

1. DNS 인증 방법부터 해봅니다.

“api.apost.kr” 이라는 서브 도메인을 위한 인증을 한다고 할 경우

1. “Manual Verification (DNS)” 를 클릭.

2. DNS 인증하는 방법에 대한 안내가 나옵니다. “Manually Verify Domain” 버튼을 클릭.

3. “Manually Verify Domain” 버튼 밑으로 DNS  “TXT” 레코드로 등록할 내용이 표시됩니다.

4. 도메인 관리 기능, 또는 네임서버의 해당 도메인에 TXT 레코드를 표시되는 내용대로 추가합니다.

일부 네임서버 호스팅 관리 도구에서는 “_”(언더바)와 같은 특수 문자 입력이 제한된 경우가 있습니다.

이런 경우에는 이 방법을 사용할 수 없습니다.

5. “Verify _acme-challenge.내도메인” 링크를 클릭해 TXT 레코드가 적용되었는지 확인합니다.

TXT 레코드가 적용되지 않았을 경우 “No TXT Record Found. Make to set the TTL to 1 second or if you cannot set the TTL then you must wait the TTL (in seconds) so it updates before verifying the domain. Contact your DNS provider if unsure.” 메시지가 표시됩니다.

이 경우 TXT 레코드가 잘못 적용된 것이므로 문제점을 찾아 수정해야 합니다.

6. TXT 레코드가 적용되었으면 “Download SSL Certificate” 버튼을 누르면 인증서 압축파일이 다운로드 됩니다.

“I Have My Own CSR”은 체크하지 않습니다. 이 항목은 인증서 요청을 생성한 경우에만 사용합니다.

2. 웹사이트 특정 폴더에 소유권 인증용 파일을 직접 업로드합니다.

1, 소유권 인증 방식으로 “Manual Verification” 을 선택합니다.

2. “Manually Verify Domain” 버튼을 클릭

3. 수동 인증을 위한 안내가 표시됩니다.

4. “Download File #1″을 클릭해 소유권 인증 파일을 다운로드 합니다.

도메인 명으로 1차 도메인을 입력했으면 다운로드 링크가 2개가 표시되며, 두개 모두 다운로드 및 업로드를 해야 합니다.

5. 웹사이트 루트에

.well-known

ㄴ acme-challenge

구조대로 폴더를 생성합니다.

“well-known” 앞에 마침표가 있는점을 주의해야 합니다.

6. 다운로드한 파일을 “acme-challenge” 폴더 안에 저장(업로드)합니다.

7. 5번의 링크를 클릭해 업로드한 파일이 접근이 가능한지 확인합니다.

http 로 접근이 가능한 경우 인증 파일 안의 키 값이 표시됩니다.

1차 도메인을 신청하는 경우 확인 링크가 2개가 표시됩니다. 두개 모두 클릭해 인증 키가 보이는지 확인해야 합니다.

8. “Download SSL Certificate” 버튼을 눌러 인증서 파일을 생성 합니다.

9. 인증서 생성이 완료되고 인증서 발급 정보가 표시되면 “Download All SSL Certificate Files” 버튼을 클릭합니다.

인증서 압축파일이 다운로드 됩니다.

3. FTP 자동인증. 

웹사이트에 FTP가 연동되는 경우, 인증서 발급 전 소유권 인증 페이지에서 FTP 정보만 입력하면 자동으로 인증 처리가 완료됩니다.

접속 FTP 계정은 반드시 폴더 생성 및 읽기/쓰기 권한이 있어야 합니다.

1. “Automatic FTP Verification” 클릭

2. 밑에 표시되는 FTP 접속 정보 폼에 연결 정보 입력

3. “Download Free SSL Certificate” 클릭해 인증서를 생성합니다.

4. 인증서 생성이 완료되고 인증서 발급 정보가 표시되면 “Download All SSL Certificate Files” 버튼을 클릭합니다.

인증서 압축파일이 다운로드 됩니다.


SSL 인증서 백업 파일로 변환하기_

발급받은 인증서는 인증요청 없이 발급받은 인증서이기 때문에 웹서버에 설치하려면 인증서 백업 파일 형태로 변환해야 합니다.

https://www.sslshopper.com/ssl-converter.html

사이트에 접속합니다.

1. sslforfree.com 에서 다운로드 받은 무료 SSL 인증서 zip 파일의 압축을 풉니다.

인증서 파일은 “ca_buldle.crt”, “certificate.crt”, “private.ke” 3개로 구성됩니다.

2. 폼의 “Type To Convert To” 목록에서 “PFX/PKCS#12” 를 선택합니다.

업로드할 인증서 파일을 선택하는 항목이 1개에서 4개로 늘어납니다.

4개의 업로드 파일 선택 필드중 상단의 2개만 사용합니다.

3, 맨위 “Cerfificate Files to Convert” 필드의 “파일 선택” 을 클릭해 압축을 풀어놓은 인증서 파일들 중 “certificate.crt” 파일을 선택합니다.

두번째 “Private Key File” 필드의 “파일 선택” 을 클릭해 “private.key” 파일을 선택합니다.

4. “Type of Current Certificate” 는 “Standard PEM” 을 선택합니다.

5. “Convert Certificate” 버튼을 클릭합니다.

“certificate.pfx” 파일이 다운로드 됩니다.

오픈SSL 을 사용하는 경우 커멘드라인으로 직접 인증서 백업 파일로 변환이 가능합니다.

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

이제 다운로드 받은 SSL 인증서 백업파일( certificate.pfx )을 웹서버에서 등록하면 됩니다.