웹사이트 검색

Ubuntu 12.04용 nginx에서 SSL 인증서를 생성하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 Ubuntu 버전에 대해 설명합니다. 현재 Ubuntu 12.04를 실행하는 서버를 운영 중인 경우 지원되는 Ubuntu 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

  • Ubuntu 14.04로 업그레이드합니다.
  • Ubuntu 14.04에서 Ubuntu 16.04로 업그레이드
  • 서버 데이터를 지원되는 버전으로 마이그레이션

이유:

대신 참조:

자체 서명된 인증서 정보

SSL 인증서는 사이트 정보를 암호화하고 보다 안전한 연결을 만드는 방법입니다. 또한 인증서는 가상 사설 서버 식별 정보를 사이트 방문자에게 보여줄 수 있습니다. 인증 기관은 서버 세부 정보를 확인하는 SSL 인증서를 발급할 수 있지만 자체 서명된 인증서에는 타사 확증이 없습니다.

설정

이 자습서의 단계를 수행하려면 사용자에게 루트 권한이 있어야 합니다. 3단계와 4단계의 초기 서버 설정 자습서에서 설정 방법을 확인할 수 있습니다.

또한 VPS에 nginx가 이미 설치되어 실행 중이어야 합니다. 그렇지 않은 경우 다음 명령으로 다운로드할 수 있습니다.

sudo apt-get install nginx

1단계 - 인증서용 디렉토리 생성

SSL 인증서는 인증서 자체와 공개 키의 두 부분으로 구성됩니다. 모든 관련 파일에 쉽게 액세스하려면 해당 파일을 저장할 디렉토리를 만들어야 합니다.

 sudo mkdir /etc/nginx/ssl

디렉터리 내에서 다음 몇 단계를 수행합니다.

 cd /etc/nginx/ssl

2단계 - 서버 키 및 인증서 서명 요청 생성

개인 서버 키 생성부터 시작하십시오. 이 과정에서 특정 암호를 입력하라는 메시지가 표시됩니다. 이 문구를 주의 깊게 기록해 두십시오. 잊어버리거나 분실하면 인증서에 액세스할 수 없습니다.

sudo openssl genrsa -des3 -out server.key 2048

인증서 서명 요청을 생성하여 후속 조치를 취하십시오.

sudo openssl req -new -key server.key -out server.csr

이 명령은 입력해야 하는 필드 목록을 표시하도록 터미널에 프롬프트를 표시합니다.

가장 중요한 줄은 "Common Name"입니다. 여기에 공식 도메인 이름을 입력하거나 아직 없는 경우 사이트 IP 주소를 입력하세요. 챌린지 암호와 선택적 회사 이름은 비워 둡니다.

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) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:NYC
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc
Organizational Unit Name (eg, section) []:Dept of Merriment
Common Name (e.g. server FQDN or YOUR name) []:example.com                  
Email Address []:webmaster@awesomeinc.com

3단계 - 암호 제거

인증서 생성이 거의 완료되었습니다. 그러나 암호를 제거하는 것이 도움이 됩니다. 암호가 있으면 보안이 강화되지만 nginx를 다시 로드하려고 하면 문제가 시작됩니다. nginx가 충돌하거나 재부팅해야 하는 경우 전체 웹 서버를 다시 온라인 상태로 전환하려면 항상 암호를 다시 입력해야 합니다.

암호를 제거하려면 다음 명령을 사용하십시오.

sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key

4단계 - SSL 인증서 서명

인증서가 거의 완료되었으며 서명만 하면 됩니다.

 sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

이제 인증서 작성이 완료되었습니다.

5단계 - 인증서 설정

이제 완성된 인증서의 모든 필수 구성 요소가 있습니다. 다음으로 할 일은 새 인증서를 표시하도록 가상 호스트를 설정하는 것입니다.

표준 가상 호스트 파일과 동일한 기본 텍스트 및 레이아웃으로 새 파일을 만들 수 있습니다. 명령에서 "example"을 원하는 이름으로 바꿀 수 있습니다.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example

그런 다음 계속해서 새 파일을 엽니다.

 sudo nano /etc/nginx/sites-available/example

파일 맨 아래로 스크롤하여 다음으로 시작하는 섹션을 찾습니다.

# HTTPS server

server {
        listen 443;
        server_name example.com;

        root /usr/share/nginx/www;
        index index.html index.htm;

        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key; 
}

HTTPS 서버 라인 아래 섹션 내에서 주석 처리를 제거하십시오. 구성을 위의 정보와 일치시켜 \server_name\ 줄의 example.com을 도메인 이름 또는 IP 주소로 바꿉니다. 그런 다음 사이트에 맞는 올바른 디렉토리를 추가합니다(위 구성에는 기본 nginx 페이지가 포함됨).

또한 다음과 같은 파일 시작 부분의 줄에서 이 두 줄이 모두 주석 처리되었는지 확인하십시오.

# Make site accessible from http://localhost/
# server_name localhost;

6단계 - 가상 호스트 활성화

마지막 단계는 사이트 사용 가능 디렉토리와 사이트 사용 가능 디렉토리 사이에 심볼릭 링크를 만들어 호스트를 활성화하는 것입니다.

 sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example

그런 다음 nginx를 다시 시작합니다.

 sudo service nginx restart

방문 https://youraddress

해당 페이지에 자체 서명된 인증서가 표시됩니다!

더보기

사이트에 SSL 인증서를 설정한 후 아직 FTP 서버를 설치하지 않았다면 설치할 수 있습니다.

자원

  • http://wiki.nginx.org/HttpSslModule#Generate_Certificates