일단 일반 openssl 적용은 많이 있고 openssl 을 그냥 적용하면 항상 신뢰하지 않는 사이트 접근에 대해서 브라우저가 뱉어 낸다. IE 같은 경우는 내 기억에 신뢰할수 있는 사이트에 추가 해주면 되었던거 같았는데 이번에 테스트 때문에 해보니 추가해도 안된다 그리고 크롬은 아예 그런게 없고 그래서 openssl 로 만든 인증서를 rootCA 까지 만들어서 적용하니 크롬과 IE 다 인증서를 정상 인식 하고 작동에 문제가 없었다. 물론 테스트 용이고 실재는 인증서를 돈받고 발급 받던지 아니면 해당 인증키를 내려받아서 인증할수 있게 하던지 하면 되겟다
www.lesstif.com/system-admin/openssl-root-ca-ssl-6979614.html자료를 참조햇다
일단 centos 7 기준으로 rootca 를 먼저 생성한다
==ca용 rsa 키 생성
openssl genrsa -aes256 -out /etc/pki/tls/private/lesstif-rootca.key 2048
==csr 생성용 conf 제작
vi rootca_openssl.conf
[ req ]
default_bits = 2048
default_md = sha1
default_keyfile = lesstif-rootca.key
distinguished_name = req_distinguished_name
extensions = v3_ca
req_extensions = v3_ca
[ v3_ca ]
basicConstraints = critical, CA:TRUE, pathlen:0
subjectKeyIdentifier = hash
##authorityKeyIdentifier = keyid:always, issuer:always
keyUsage = keyCertSign, cRLSign
nsCertType = sslCA, emailCA, objCA
[req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = KR
countryName_min = 2
countryName_max = 2
# 회사명 입력
organizationName = [회사명]
organizationName_default = [회사명 기본]
# 부서 입력
#organizationalUnitName = R&D
#organizationalUnitName_default = Condor Project
# SSL 서비스할 domain 명 입력
commonName = [도메인]
commonName_default = ex)lesstif's Self Signed CA[인증발급기관명]
commonName_max = 64
설정 파일 만들고 키를 csr 로 변경
openssl req -new -key /etc/pki/tls/private/lesstif-rootca.key -out /etc/pki/tls/certs/lesstif-rootca.csr -config rootca_openssl.conf
하면 해당 설정파일이 먹으면서 확인만 하면 된다 엔터키로 중간에 비밀번호 생성도 나오면 이력하면된다
openssl x509 -req \
-days 3650 \
-extensions v3_ca \
-set_serial 1 \
-in /etc/pki/tls/certs/lesstif-rootca.csr \
-signkey /etc/pki/tls/private/lesstif-rootca.key \
-out /etc/pki/tls/certs/lesstif-rootca.crt \
-extfile rootca_openssl.conf
인증서 확인
openssl x509 -text -in /etc/pki/tls/certs/lesstif-rootca.crt
이걸로 rootCA 인증서는 생성 되었다
이제는 호스트에서 사용할 인증서를 만든다
openssl genrsa -aes256 -out /etc/pki/tls/private/lesstif.com.key 2048
키 생성하면 비번을 넣는데 이게 서버에 적용되면 서버 구동때마다 비번 물어보고 까먹으면 재발급해야 되니
안묻는 걸로 아래와 같이 처리한다
cp /etc/pki/tls/private/lesstif.com.key /etc/pki/tls/private/lesstif.com.key.enc
openssl rsa -in /etc/pki/tls/private/lesstif.com.key.enc -out /etc/pki/tls/private/lesstif.com.key
csr 파일 생성용 conf 만든다.
vi host_openssl.conf
[ req ]
default_bits = 2048
default_md = sha1
default_keyfile = lesstif-rootca.key
distinguished_name = req_distinguished_name
extensions = v3_user
[ v3_user ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
authorityKeyIdentifier = keyid,issuer
subjectKeyIdentifier = hash
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
## SSL 용 확장키 필드
extendedKeyUsage = serverAuth,clientAuth
subjectAltName = @alt_names
[ alt_names]
## Subject AltName의 DNSName field에 SSL Host 의 도메인 이름을 적어준다.
## 멀티 도메인일 경우 *.lesstif.com 처럼 쓸 수 있다.
DNS.1 = [1차 도메인] ex) www.test.kr
DNS.2 = [2차 도메인] ex) *.test.kr
[req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = KR
countryName_min = 2
countryName_max = 2
# 회사명 입력
organizationName = [회사명]
organizationName_default = [기본 회사명]
# 부서 입력
organizationalUnitName = R&D
organizationalUnitName_default = lesstif SSL Project
# SSL 서비스할 domain 명 입력
commonName = [서비스할 도메인 호스트] ex) www.test.kr
commonName_default = [서비스할 기본 도메인 호스트] ex) www.test.kr 내 경운 위와 동일하게 줫음
commonName_max = 64
작성하고 rootCA 와 마찬가지로 생성
openssl req -new -key /etc/pki/tls/private/lesstif.com.key -out /etc/pki/tls/certs/lesstif.com.csr -config host_openssl.conf
openssl x509 -req -days 1825 -extensions v3_user -in /etc/pki/tls/certs/lesstif.com.csr \
-CA /etc/pki/tls/certs/lesstif-rootca.crt -CAcreateserial \
-CAkey /etc/pki/tls/private/lesstif-rootca.key \
-out /etc/pki/tls/certs/lesstif.com.crt -extfile host_openssl.conf
이제 이렇게 생성된 키를 아파치에 적용하면 된다
아파치는 설치 됫다고 가정하고
yum install mod_ssl -y
로 mod_ssl 설치 한다
그리고 httpd.conf 파일에
Listen 80
아래에
Listen 443 추가하고
추가 설정 파일에
vi /etc/httpd/conf.d/ssl.conf
NameVirtualHost *:443
<VirtualHost *:443>
ServerName [서버명] ex)아래와 동일하게 줫음
ServerAlias [서버명]
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
## 위에서 생성한 SSL 인증서와 개인키
SSLCertificateFile /etc/pki/tls/certs/lesstif.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/lesstif.com.key
SSLCACertificateFile /etc/pki/tls/certs/lesstif-rootca.crt
##
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
ErrorLog logs/example.com-ssl_error_log
TransferLog logs/example.com-ssl_access_log
LogLevel warn
CustomLog logs/example.com-ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
이렇게 하고
아파치 재기동 하면 된다..
아 selinux는 끄고 했다 혹시 켜저 있으면 안될수 있다고 한다
그리고 서버에 있는 /etc/pki/tls/certs/ 디렉토리에 rootCA 인증서와 호스트용 인증서
crt 파일을 pc 인증서에 rootCA 파일은 신뢰할수 있는 인증서에 그리고 호스트는 등록할때 자동분류로 하면 알아서 등록되고
브라우저에서 https 로 접근하면 바로 접근 된다.
pc 인증서는 크롬에서 설정 들어간뒤에 상단 검색에 인증서 라고 검색하면 보안 부분나오고 젤 하단에 보면 인증서 관리 있다
'web·was' 카테고리의 다른 글
nginx proxy location url 패턴 (0) | 2022.10.12 |
---|---|
tomcat web.xml 세션 타임 아웃 설정 (0) | 2017.03.22 |
tomcat URIEncoding utf-8 (0) | 2017.02.16 |
tomcat 8.x An invalid character [32] was present in the Cookie value 쿠키값 세팅 문제 (0) | 2017.01.31 |
tomcat 메모리 설정 (0) | 2017.01.26 |