블로그 이미지
은총애비!!

카테고리

분류 전체보기 (2525)
Linux (35)
Error 해결 방법 (5)
소소한 일상 (1620)
사진실 (0)
책책책, 책을 읽읍시다!! (21)
기타(JSP & DB & 등등) (4)
미국 주식 관련 (541)
아침형 인간 프로젝트 (292)
Total
Today
Yesterday

'SSL'에 해당되는 글 2건

  1. 2017.12.06 [Linux Server] Apache SSL
  2. 2017.10.08 [Linux Server] OpenSSL source compile

[Linux Server] Apache SSL

Linux / 2017. 12. 6. 13:14
반응형

[Linux Server] Apache SSL

 

XXX.key -> 비밀키

XXX.crt -> 인증서

ca.pem -> ROOT CA 인증서

 

[root@www conf] # cd /usr/local/src/apache/conf

[root@www conf] # mkdir sslkeys

[root@www sslkeys] # cd sslkeys

 

[root@www sslkeys] # openssl req -new -x509 -nodes -out server.crt -keyout server.key -days 999

Generating a 1024 bit RSA private key

.......................++++++

....++++++

writing new private key to 'server.key'

.....

Country Name (2 letter code) [GB]: KR <-------------한국이면 KR

(국가코드)

State or Province Name (full name) [Some-State]: Incheon <----- 도이름 (없으면 그냥 엔터)

Locality Name (eg, city) []:Incheon <------- 도시이름

Organization Name (eg, company) [Internet Widgits Pty Ltd]:com <------ 회사명

Organizational Unit Name (eg, section) []:development <-------부서명

Common Name (eg, YOUR name) []:xxxxxxxxxx <--- 사이트명 (정확히 기입을 해줘야 한다.)

Email Address []: (엔터)

 

 

 

[root@www sslkeys] # ls

server.crt server.key

[root@www sslkeys] # chmod 600 server.key

 

 

 

 

[root@www sslkeys] # cp /usr/local/src/apache/conf/httpd.conf /usr/local/src/apache/conf/httpd.conf.ssl

[root@www sslkeys] # vi /usr/local/src/apache/conf/httpd.conf

... (중략) ...

LoadModule ssl_module modules/mod_ssl.so <----------이부분이 없다면 좀 이상한건데 일단 적고 파일이 존재하는지 확인 해본다.

... (중략) ...

# Secure (SSL/TLS) connections

Include conf/extra/httpd-ssl.conf <---------- # 주석 해제

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

 

 

 

 

[root@www sslkeys] # cp /usr/local/src/apache/conf/extra/httpd-ssl.conf /usr/local/src/apache/conf/extra/httpd-ssl.conf.ssl

[root@www sslkeys] # vi /usr/local/src/apache/conf/extra/httpd-ssl.conf

아래와 같이 추가 하고 기존 SSLCertificateFile/ SSLCertificateKeyFile은 주석 처리!!

SSLCertificateFile “/usr/local/src/apache/conf/sslkeys/server.crt”

SSLCertificateKeyFile “/usr/local/src/apache/conf/sslkeys/server.key”

※ ""(쌍따옴표) 주의

 

 

 

 

<VirtualHost> 안에 아래 내용 추가

 

#JSP 페이지 보이게 하기

JkMount /*.jsp ajp13

JkMount /servlet/* ajp13

JkMount /*.qual ajp13

JkMount /*.admin ajp13

JkMount /*.board ajp13

JkMount /*.bbs ajp13

 

 

 

 

[root@www sslkeys] # cp /usr/local/src/apache/conf/httpd.conf /usr/local/src/apache/conf/httpd.conf.ssl2

[root@www sslkeys] # vi /usr/local/src/apache/conf/httpd.conf (파일 제일 밑에 추가)

#HTTP로 들어오는 것을 HTTPS로 변환

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

 

 

 

 

[root@www sslkeys] # system-config-firewall에서 방화벽에가서 443포트를 열어 줌.

 

 

 

 

아파치/톰캣 재실행 후 http://localhost 또는 http://ip로 접속 했을 경우 http가 https로 자동 변환 되는 것을 확인

 

혹여 아파치 재실행 중 아래와 같이 나온다면

/usr/local/src/apache/conf/extra/httpd-ssl.conf 파일을 열고 120번째줄에 가보면

SSLCertificateFile “/usr/local/src/apache/conf/sslkeys/server.crt”

SSLCertificateKeyFile “/usr/local/src/apache/conf/sslkeys/server.key”

를 추가한 내용이 있을 겁니다. “”(쌍따옴표) 지우고 다시 쓰고 저장하고 나와 아파치 재실행 하면 됩니다.

 

 

 

 

 

 

 

반응형
Posted by 은총애비!!
, |
반응형

[Linux Server] OpenSSL source compile

17.10.10 update : ./config --prefix 변경



설치 전 사항 : gcc make openssl-devel zlib zlib-devel 패키지 설치 및 업데이트

설치 순서
1. openssl 다운로드
2. ./config
3. make & make install
4. 에러 해결 방법

source 설치이기 때문에 rpm으로 검색하면 이전 버전이 나옵니다.
이전 버전의 openssl에 현재 버전을 덮어씌운 것입니다.

혹시 모를 상황에 대비해 이전 버전을 확인후 백업해 놓습니다.
[root@localhost qual]# find / -name openssl
/usr/lib/openssl
/usr/include/openssl
/usr/bin/openssl----------------> 현 버전이 있는 곳
[root@localhost qual]# cp /usr/bin/openssl /usr/bin/openssl.bak

「현재 OpenSSL 버전 확인」
[root@localhost qual]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
[root@localhost qual]#

「https://www.openssl.org/source/ 에서 최신 버전 확인」
현 최신 버전인 1.1.0f 버전을 다운 받습니다.

wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz 으로 다운 받습니다.
홈페이지에서 최신 버전을 확인 후 https://www.openssl.org/source/openssl-1.1.0f.tar.gz 뒤의 버전 부분을 수정해도 최신버전으로 다운 받습니다.

1. openssl 다운로드
[root@localhost qual]# wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz
--2017-10-06 22:33:14-- https://www.openssl.org/source/openssl-1.1.0f.tar.gz
Resolving www.openssl.org... 202.43.55.100, 2600:1417:8000:391::c1e, 2600:1417:8000:394::c1e
Connecting to www.openssl.org|202.43.55.100|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5278176 (5.0M) [application/x-gzip]
Saving to: `openssl-1.1.0f.tar.gz'

100%[==============================================================================================================================>] 5,278,176 257K/s in 15s

2017-10-06 22:33:33 (335 KB/s) - `openssl-1.1.0f.tar.gz' saved [5278176/5278176]

[root@localhost qual]#

「이제 압축을 해제 합니다」
[root@localhost qual]# tar zxvf openssl-1.1.0f.tar.gz

「압축을 해제한 openssl 디렉토리로 이동합니다.」
[root@localhost qual]# cd openssl-1.1.0f

2. ./config
[root@localhost openssl-1.1.0f]# ./config --prefix=/usr/local/openssl shared enable-md2 zlib
(--prefix 옵션을 주지 않으면 기본적으로 /usr/local 밑으로 나눠서 설치.
hearder(.h)는 /usr/local/include/openssl, openssl 실행파일은 /usr/local/bin, library는 /usr/local/lib/openssl 디렉토리에 설치)

 



「이제 make & make install을 해줍니다.」
3. make & make install
[root@localhost openssl-1.1.0f]# make
[root@localhost openssl-1.1.0f]# make install
「한번씩 하기 귀찮다면 한방에!!(에러가 없다면 다음으로 넘어갑니다) => make && make install」

 

「openssl 파일을 찾습니다」
[root@localhost openssl-1.1.0f]# find / -name openssl
/home/qual/openssl-1.1.0f/apps/openssl
/home/qual/openssl-1.1.0f/include/openssl
/usr/lib/openssl
/usr/local/openssl
/usr/local/openssl/share/doc/openssl
/usr/local/openssl/include/openssl
/usr/local/openssl/bin/openssl ----------------------> 새로 설치한 openssl
/usr/include/openssl
/usr/bin/openssl ----------------------> 이전 버전 openssl
[root@localhost openssl-1.1.0f]#

「이제 새로 설치한 openssl을 /usr/bin/openssl로 덮어쓰기 합니다.」
[root@localhost openssl-1.1.0f]# cp /usr/local/openssl/bin/openssl /usr/bin/openssl
[root@localhost openssl-1.1.0f]# openssl version
./openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
[root@localhost openssl-1.1.0f]#

4. 에러 해결 방법
「새로 설치한 openssl의 lib 경로 설정 해줍니다. (libcrypto.so.1.1, libssl.so.1.1 의 파일 위치 찾기)」
[root@localhost home]# cd /usr/local/openssl/lib/
[root@localhost lib]# ls
engines-1.1 libcrypto.a libcrypto.so libcrypto.so.1.1 libssl.a libssl.so libssl.so.1.1 pkgconfig
[root@localhost lib]# pwd
/usr/local/openssl/lib
[root@localhost lib]# cd /etc/ld.so.conf.d/
[root@localhost ld.so.conf.d]# ls
atlas-i386.conf kernel-2.6.32-71.el6.i686.conf mysql-i386.conf xulrunner-32.conf
[root@localhost ld.so.conf.d]# vi openssl-1.1.0f.conf--------------> 파일명(알기 쉽게!!)
/usr/local/openssl/lib------------------> 추가 내용
추가합니다.
[root@localhost ld.so.conf.d]# ldconfig
[root@localhost ld.so.conf.d]# openssl version
OpenSSL 1.1.0f 25 May 2017
컴파일한 최신 버전 확인


기존 실행파일만 교체했기 때문에 yum info openssl 명령과 rpm -qa |grep openssl 명령으로는 아무런 변화를 찾을수 없다.

./config에서 --prefix 때문에 OpenSSH 설치에서 정말 많이 고생했다. OpenSSL만 50번은 족히 컴파일 했으며 OpenSSH도 20번 이상 컴파일해본 결과 최종적인 결과물이다.

다음은 OpenSSH 설치 방법!!

반응형
Posted by 은총애비!!
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함