이 블로그는 전송 계층 보안 (TLS)을 소개하고 보안 소켓 계층 (SSL)과 어떻게 다른지 설명합니다. 또한 Oracle® E-Business Suite® (EBS) R12에서 TLS를 활성화하기 위한 필수 단계별 지침을 포함합니다.
TLS란 무엇인가?
TLS는 SSL의 업그레이드된 버전으로 클라이언트와 서버 간의 안전한 통신을 제공합니다. TLS가 대칭 암호화 알고리즘을 사용하여 데이터를 암호화하기 때문에, SSL을 사용하는 것보다 데이터 전송이 더 안전하고 안정적입니다.
EBS와 TLS를 사용하는 이유?
아시다시피, EBS는 인바운드, 아웃바운드, 루프백 연결을 사용하고 EBS 사용자와 비즈니스 크리티컬 정보를 공유합니다. 따라서 데이터 도용, 데이터 변조, 메시지 위조의 가능성이 더 많습니다. 그러나 EBS에서 TLS를 활성화하면 이러한 모든 문제를 방지할 수 있습니다.
다음 이미지는 EBS의 연결 흐름을 보여줍니다:
이미지 출처: Enabling TLS in Oracle E-Business Suite Release 12.1 (Doc ID 376700.1)
EBS와 TLS 구현
EBS와 TLS를 활성화하려면 다음 작업을 수행하세요:
- Java Development Kit (JDK®)와 Web Home을 업그레이드합니다.
- 필수 패치를 적용합니다.
- OpenSSL®을 구성합니다.
- .csr 파일을 생성합니다.
- 인증 기관 (CA)에서 인증된 .csr 파일을 받습니다.
- 인증서를 다운로드하고 EBS로 가져옵니다.
- 구성 변경합니다.
- AutoConfig를 실행합니다.
- URL을 확인합니다.
1. JDK와 Web Home 업그레이드
JDK 7 이상으로 업그레이드하고, Web Home을 버전 10.1.3.5로 업그레이드하세요.
2. 필수 패치 적용
다음 패치(또는 가장 최근에 출시된 패치)를 설치하세요:
- Oracle Opatch (6880880)
- Oracle Critical Patch Updates (CPU)
- Oracle HTTP Server (OHS) (27078378)
- Oracle Process Manager and Notification Server (OPMN) (27208670)
- EBS (22724663, 22922530, and 22974534)
3. OpenSSL 구성
다음 명령어를 실행하여 OpenSSL 구성 파일을 생성하세요:
cd $INST_TOP/certs/Apache mkdir WildcardCert cd $INST_TOP/certs/Apache/WildcardCert
OpenSSL용 응답 파일로 사용할 다음 new.cnf 파일을 생성하세요:
cat new.cnf [req] prompt = no default_md = sha256 distinguished_name = dn req_extensions = ext [dn] CN = *. corp.aspentech.com O = Aspen Technology Inc OU = IT L = Bedford ST = Masachett C = US [ext] subjectAltName = DNS:*. corp.aspentech.com
4. .csr 파일 생성
.csr 파일을 생성하려면 다음 단계를 사용하세요:
-
다음 명령어를 실행하여 .csr 파일을 생성하세요:
$ openssl req -newkey rsa:2048 -nodes -keyout server.key -sha256 -out new.csr -config new.cnf Generating a 2048 bit RSA private key ......................................+++ ........................................................................................+++ writing new private key to 'server.key' -
https://www.sslshopper.com/csr-decoder.html에서 .csr을 확인하세요
-
정보가 정확하면 .csr을 CA로 보내세요.
5. CA에서 인증서 받기
CA는 서버 인증서와 인증서 체인 파일을 보내야 합니다.
6. 인증서 파일 다운로드 및 가져오기
CA에서 서버 인증서와 인증서 체인 파일을 받은 후, 다음 단계를 수행하세요:
파일 다운로드
아카이브 파일을 데스크톱에 다운로드하고, 새 폴더에 압축을 풀고, 지갑을 생성하세요. 다음 이미지와 같이 두 개의 파일이 보여야 합니다:
a2e로 시작하는 파일이 메인 파일이고, gd로 시작하는 파일이 중간 파일입니다.
메인 파일을 열고 root(또는 메인) 인증서를 .crt 파일로 저장하세요. 마찬가지로 중간 파일을 열고 .crt 파일로 저장하세요. 모든 파일을 서버에 업로드하세요.
Apache 디렉토리 생성
Apache® 디렉토리를 생성하려면 다음 명령어를 실행하세요. Apache 디렉토리가 이미 존재하는 경우, 먼저 이전 Apache 디렉토리를 백업하세요.
cd $INST_TOP/certs/ mkdir Apache
지갑 디렉토리 생성
애플리케이션 노드에 빈 지갑 디렉토리를 생성하려면 다음 명령어를 실행하세요:
orapki wallet create -wallet /u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache -pwd WalletPasswd123 -auto_login
앞의 명령어는 지갑 폴더(/u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache) 안에 ewallet.p12와 cwallet.sso 파일을 생성합니다.
인증서 복사
루트, 서버, 중간 순서로 인증서를 가져오려면 다음 명령어를 실행하세요:
orapki wallet add -wallet /u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache -trusted_cert -cert "/home/appti1/ITK1054693/root.crt" -pwd WalletPasswd123 orapki wallet add -wallet /u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache -trusted_cert -cert "/home/appti1/ITK1054693/server.crt" -pwd WalletPasswd123 orapki wallet add -wallet /u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache -trusted_cert -cert "/home/appti1/ITK1054693/intermediate.crt " -pwd WalletPasswd123
b64InternetCertificate.txt 생성
ca.crt의 내용을 b64InternetCertificate.txt에 추가하려면 다음 단계를 수행하세요:
-
버전 10.1.2 ORACLE_HOME/sysman/config/로 이동하세요.
-
다음 명령어를 실행하세요:
Cat root.crt >> b64InternetCertificate.txt
OPMN에 지갑 복사
지갑을 OPMN에 복사하려면 다음 단계를 수행하세요:
- $INST_TOP/certs/opmn 디렉토리로 이동하세요.
- BAK라는 새 디렉토리를 생성하세요.
- ewallet.p12와 cwallet.sso를 $INST_TOP/certs/Apache에서 BAK로 이동하세요.
- BAK에서 ewallet.p12와 cwallet.sso를 $INST_TOP/certs/opmn로 복사하세요.
결과는 다음 예제와 유사해야 합니다:
[appti1@nchlatiebsa01 opmn]$ pwd /u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/opmn [appti1@nchlatiebsa01 opmn]$ ls -ltr drwxrwxr-x 2 appti1 appti1 4096 Nov 17 05:34 BAK -rw------- 1 appti1 appti1 3993 Nov 20 00:05 cwallet.sso -rw------- 1 appti1 appti1 3965 Nov 20 00:05 ewallet.p12 [appti1@nchlatiebsa01 opmn]$
cacerts 파일 업데이트
JDK cacerts 파일을 업데이트하려면 다음 단계를 수행하세요:
-
$OA_JRE_TOP/lib/security로 이동하세요.
-
기존 cacerts 파일을 백업하세요.
-
root.crt와 server.crt를 이 디렉토리에 복사하고 cacerts에 쓰기 권한이 있는지 확인하기 위해 다음 명령어를 실행하세요:
$ chmod u+w cacerts -
Apache ca.crt와 server.crt를 cacerts에 추가하려면 다음 명령어를 실행하세요:
$ keytool -import -alias ApacheRootCA -file root.crt -trustcacerts -v -keystore cacerts $ keytool -import -alias ApacheServer -file server.crt -trustcacerts -v -keystore cacerts -
프롬프트가 나타나면 키스토어 비밀번호를 입력하세요. 기본 비밀번호는
changeit입니다.
파라미터 업데이트
XML 파일에서 다음 TLS 관련 파라미터 변경을 수행하세요:
엔드-투-엔드 TLS를 사용하는 경우 다음 변경을 수행하세요:
7. 구성 변경
파일에 다음 변경을 수행하세요:
(파일이 custom 폴더에 없으면 custom 폴더를 생성하고 파일을 복사하세요.)
FND_TOP>/admin/template/custom/opmn_xml_1013.tmp 용:
템플릿에서 이 줄을 교체하세요:
<ssl enabled="true" wallet-file="%s_web_ssl_directory%/opmn"/>
다음 대체 줄로:
<ssl enabled="true" openssl-certfile="%s_web_ssl_directory%/Apache/opmn.crt" openssl-keyfile="%s_web_ssl_directory%/Apache/server.key" openssl-password="dummy" openssl-lib="%s_weboh_oh%/lib" ssl-versions="TLSv1.0,TLSv1.1,TLSv1.2" ssl-ciphers="AES128-SHA,AES256-SHA"/>
FND_TOP>/admin/template/custom/httpd_conf_1013.tmp 용:
다음 섹션을 수정하세요:
<IfDefine SSL> LoadModule ossl_module libexec/mod_ossl.so </IfDefine>
다음으로:
<IfDefine SSL> #LoadModule ossl_module libexec/mod_ossl.so LoadModule ssl_module libexec/mod_ssl.so </IfDefine>
FND_TOP>/admin/template/custom/ssl_conf_1013.tmp 용:
템플릿에서 다음 줄을 주석 처리하세요:
#SSLWallet file:%s_web_ssl_directory%/Apache
템플릿에 다음 줄을 추가하세요:
SSLCertificateFile %s_web_ssl_directory%/Apache/server.crt SSLCertificateKeyFile %s_web_ssl_directory%/Apache/server.key SSLCertificateChainFile %s_web_ssl_directory%/Apache/intermediate.crt
다음 줄을 교체하세요:
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
다음 대체 줄로:
SSLCipherSuite HIGH:MEDIUM:!aNULL:!RC4:!3DES:!SEED:!IDEA:!CAMELLIA:+HIGH:+MEDIUM
다음 줄을 교체하세요:
SSLProtocol -all +TLSv1 +SSLv3
다음 대체 줄로:
SSLProtocol all -SSLv2 -SSLv3
다음 파일 용:
- <FND_TOP>/admin/template/custom/oc4j_properties_1013.tmp
- <FND_TOP>/admin/template/custom/oafm_oc4j_properties_1013.tmp
- <FND_TOP>/admin/template/custom/forms_oc4j_properties_1013.tmp
원본 파일을 <FND_TOP>/admin/template에서 <FND_TOP>/admin/template/custom로 복사하세요. custom 디렉토리나 사용자 정의 템플릿 파일이 아직 없는 경우.
이 custom 파일을 다음 줄을 추가하여 업데이트하세요:
https.protocols=TLSv1,TLSv1.1,TLSv1.2
8. AutoConfig 실행
애플리케이션 티어 $ADMIN_SCRIPTS_HOME 디렉토리에서 adautocfg.sh을 실행하세요.
9. 최종 검증 수행
URL을 확인하세요. 다음 예제와 같아야 합니다:
SQL> select home_url from icx_parameters; HOME_URL -------------------------------------------------------------------------------- https://ebstest1.corp.aspentech.com:4443/OA_HTML/AppsLogin
결론
EBS를 사용하고 중요한 데이터를 전송할 계획이라면, 서버와 클라이언트 간에 인터넷 기반 통신이 안전하게 이루어지도록 EBS에서 TLS를 활성화해야 합니다. 이는 통신 중 아무도 데이터를 변조하거나 해킹하지 못하도록 보장합니다.
피드백 탭을 사용하여 의견을 남기거나 질문하세요.
데이터베이스 서비스에 대해 자세히 알아보세요.
우리는 Oracle 제품 전문가이므로 Rackspace가 귀하의 Oracle 투자를 극대화하는 데 도움을 드립니다.