Apache HTTP Server에 대한 SSL/TLS 지원 활성화
8870 단어 Linux
이 글은 2013/09/08momoto.github.io 기고한 내용을 Qita로 옮긴 것이다
mod_ssl를 사용하여 Apache HTTP 서버에 대한 SSL/TLS 지원을 활성화합니다.SSL을 효력을 발생시키기 위해서는 RSA 기밀 키와 키 인증서의 키 인증서가 제3자 인증국에서 서명해야 하지만 이 글은 인증을 위해 자체 발급된 인증서를 사용했습니다.
단계 (1) RSA 기밀 키 생성, (2) 인증서 서명 요청(CSR) 생성, (3) 공개 키 인증서 발행, 네트워크 서버에 SSL/TLS 설정.(3) 의'공개 키 인증서 발행'은 원래 인증국에서 실행되는 프로그램이다.
1. OpenSSL을 사용하여 RSA 기밀 키 및 인증서 서명 요청 준비(신청자)
RSA 기밀 키 생성 사용
openssl genrsa -out <秘密鍵ファイル名> <鍵長>
명령openssl-genrsa
$ openssl genrsa -out localhost.key 2048
Generating RSA private key, 2048 bit long modulus
...................................................+++
...............+++
e is 65537 (0x10001)
2013년 9월까지 1024비트 키 길이 CSR을 받지 않는 인증국도 있었는데 키 길이는 보통 2048비트 이상이었다.(참조)SSL에서 RSA 키 1024비트에 대한 질문 | 글로벌 서명
openssl genrsa
옵션은 생성된 RSA 비밀 키를 다른 암호화 방식으로 암호화하거나 파일로 무작위 수를 생성하는 데 사용할 피드 값을 지정할 수 있습니다.AES 또는 DES와 같은 공통 키 암호화로 RSA 비밀 키를 암호화할 때 비밀 키에 암호문을 설정합니다.이 암호문은 웹 서버를 시작하거나 인증서 서명 요청 파일을 만들 때 입력해야 합니다.그런 다음 RSA 기밀 키를 기반으로 인증서 서명 요청 파일을 만듭니다.OpenSSL 명령 사용
openssl req -new -key <秘密鍵ファイル名> -out <証明書署名要求ファイル名>
.CSR을 만들려면 경계 이름을 입력해야 합니다.openssl-req
$ openssl req -new -key localhost.key -out localhost.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Shinjuku
Organization Name (eg, company) [Default Company Ltd]:Localhost, Local Area Network
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:localhost
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
(참조)2. 공개 키 인증서 발행(인증서)
인증서 서명 요청 파일과 인증국의 개인 키에 따라 공개 키 인증서를 발행합니다.OpenSSL 명령 사용
openssl ca -in <証明書署名要求ファイル名> -out <公開鍵証明書ファイル名>
.openssl-ca
$ openssl ca -in localhost.csr -out localhost.self-signed.crt
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
ec:65:47:48:ff:6d:ff:cc
Validity
Not Before: Sep 7 00:00:00 2013 GMT
Not After : Sep 7 00:00:00 2014 GMT
Subject:
countryName = JP
stateOrProvinceName = Tokyo
organizationName = Localhost, Local Area Network
commonName = localhost
X509v3 extensions:
X509v3 Basic Constraints:
CA:TRUE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
02:B3:E2:99:8B:C9:E8:F2:33:A7:27:1B:FD:D6:9E:64:C9:12:D2:7E
X509v3 Authority Key Identifier:
keyid:15:F3:B6:82:FD:BB:41:AF:F2:AE:D9:BD:E1:C0:2E:B6:A5:23:C6:FA
Certificate is to be certified until Sep 7 00:00:00 2014 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
인증국은 발행된 키 인증서를 신청자에게 건네주고 신청자는 키 인증서를 서버로 이동합니다.3. mod_ssl 설정(Apache HTTP Server)
www.modssl.org와 발매된mod-ssl을 설치하다.
$ sudo yum install mod_ssl
Apache 실행 사용자가 읽을 수 있는 파일 경로에 위에서 설명한 RSA 기밀 키 및 공개 키 인증서를 설정합니다.마찬가지로 권한도 적절하게 설정된다.$ sudo mv localhost.key /etc/pki/tls/private/
$ sudo mv localhost.self-signed.crt /etc/pki/tls/certs/
$ sudo chmod 0600 /etc/pki/tls/certs/localhost.self-signed.crt
$ sudo chmod 0600 /etc/pki/tls/private/localhost.key
Apache의 설정 파일(/conf.d/ssl.conf 등)을 편집하고 SSL CeertificateFile 디렉토리와 SSL CeertificateKey File 디렉토리를 설정합니다.ssl.conf
SSLCertificateFile /etc/pki/tls/certs/localhost.self-signed.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
Apache를 다시 시작합니다.RSA 개인 키는 암호화할 때 암호를 입력해야 합니다.$ sudo apachectl -t
Syntax OK
$ sudo /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: Apache/2.2.15 mod_ssl/2.2.15 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server localhost:443 (RSA)
Enter pass phrase:
OK: Pass Phrase Dialog successful.
[ OK ]
웹 서버에 접근해 보면 발행자 불명(sec error unknown issuer)으로 연결이 신뢰되지 않지만 암호화된 것 같습니다.인증서 정보를 표시한 후 입력한 설명 이름을 확인할 수 있습니다.또 이 글의 예에서도 주체와 발행자가 동일하다는 것을 확인할 수 있다.
참고 자료
Reference
이 문제에 관하여(Apache HTTP Server에 대한 SSL/TLS 지원 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/momoto/items/96848c4daae62affd9c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)