Docker 의 Nginx 에 HTTPS 환경 을 구축 합 니 다.
HTTPS 가 뭐야?
하이퍼텍스트 전송 보안 프로 토 콜 (영어: Hypertext Transfer Protocol Secure, 줄 임 말: HTTPS, 흔히 HTTP over TLS, HTTP over SSL 또는 HTTP Secure) 은 컴퓨터 네트워크 를 통 해 안전 한 통신 을 하 는 전송 프로 토 콜 입 니 다.HTTPS 는 HTTP 를 통 해 통신 하지만 SSL / TLS 를 이용 하여 패 킷 을 암호 화 합 니 다.HTTPS 개발 의 주요 목적 은 사이트 서버 에 대한 인증 을 제공 하고 교환 데이터 의 프라이버시 와 완전 성 을 보호 하 는 것 이다.이 협 의 는 네트워크 회사 (Netscape) 가 1994 년 에 처음으로 제기 한 후에 인터넷 으로 확대 되 었 다.위 키 피 디 아 에서 온 이 소 개 는 HTTPS 가 무엇 인지, 그리고 HTTPS 가 무엇 인지 설명 하 는 것 이 쉬 운 일이 아 닙 니 다. 본 고 는 토론 을 하지 않 고 관심 이 있 는 친 구 는 검색 해서 알 아 볼 수 있 습 니 다.
인증 서 를 어떻게 획득 합 니까?
국내 에 많은 서비스 업 체 가 증 서 를 판매 하 는데 가격 이 수천 에서 수만 까지 다양 하지만 우 리 는 아 리 클 라 우 드, 텐 센트 클 라 우 드, 그리고 클 라 우 드 등 을 통 해 무료 증 서 를 얻 을 수 있다. 본 고 는 아 리 클 라 우 드, 텐 센트 클 라 우 드 등 을 중심 으로 증 서 를 신청 하여 HTTPS 환경 을 구축 할 것 이다.
준비 작업
도 메 인 이름 두 개 준비 하기
두 개의 인증 서 를 신청 하기 위해 2 급 도 메 인 이름 을 준 비 했 습 니 다: aliyun. 0558 web. com, tencent. 0558 web. com, 도 메 인 이름 을 해당 하 는 서버 로 분석 합 니 다.
Docker 를 사용 하여 Nginx 환경 만 들 기
우선 이 컴퓨터 에 Docker 가 설치 되 어 있 는 지 확인 하고 다음 명령 을 사용 하여 nginx image 를 끌 어 옵 니 다.
docker pull nginx
폴 더 만 들 기
서버 에 세 개의 폴 더 를 만 듭 니 다. nginx 는 인증서 와 nginx 프로필 을 저장 하 는 데 사 용 됩 니 다. ww 는 프로젝트 코드 를 저장 하 는 데 사 용 됩 니 다. ssl 은 인증 서 를 저장 하 는 데 사 용 됩 니 다. 현재 디 렉 터 리 에서 폴 더 를 만 드 는 것 을 보 여 줍 니 다.
mkdir -p nginx/{aliyun,tencent} www/{aliyun,tencent} ssl/{aliyun,tencent}
다음은 아 리 운 과 텐 센트 클 라 우 드 에서 신청 한 SSL 인증 서 를 보 여 주 며 HTTPS 환경 을 구축 하 겠 습 니 다.
아 리 운
SSL 인증서 신청
아 리 클 라 우 드 플랫폼 에 로그 인하 여 콘 솔 에 들 어 갑 니 다 > 제품 과 서 비 스 를 선택 합 니 다 > SSL 인증 서 를 검색 합 니 다. SSL 인증서 페이지 에서 오른쪽 상단 의 구 매 인증 서 를 클릭 합 니 다. 구 매 페이지 에서 제공 하 는 인증서 의 종 류 는 여러 가지 가 있 습 니 다. 매번 에 저 는 반나절 을 찾 아야 무료 인증 서 를 찾 을 수 있 습 니 다. 민간 부자 나 기업 은 유 료 인증 서 를 직접 구 매 할 수 있 습 니 다.저 와 같이 무료 인증 서 를 선택 하신 다 면 다음 과 같은 몇 가 지 를 기억 하 십시오. 브랜드 (Symantec) > 보호 유형 (1 개 도 메 인 이름) > 인증서 유형 (무료 DV SSL) > 구 매 에 성공 한 후에 SSL 인증서 페이지 에서 방금 구 매 한 인증 서 를 볼 수 있 습 니 다. 자 료 를 보완 하고 심 사 를 통과 한 후에 저희 인증 서 를 다운로드 할 수 있 습 니 다. 본 고 는 nginx 에서 HTTPS 환경 을 구축 하 는 것 이기 때 문 입 니 다.그래서 여 기 는 Nginx 에 대한 인증 서 를 다운로드 합 니 다.
신청 이 성공 한 후 인증 서 를 다운로드 하여 / ssl / aliyun / 디 렉 터 리 에 업로드 합 니 다.
설정 nginx 프로필 작성
/ nginx / aliyun / 폴 더 에 설정 파일 을 작성 하여 docker 용기 에 표시 합 니 다.
events{
worker_connections 1024;
}
http{
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
}
server {
listen 443;
server_name localhost;
# ssl on;
root html;
index index.html index.htm;
ssl_certificate /etc/ssl/cert/*****.pem;
ssl_certificate_key /etc/ssl/cert/*****.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
}
항목 코드 추가
/ www / aliyun / 파일 에 index. html 를 새로 만 듭 니 다.
Hello aliyun
nginx 용기 만 들 기
nginx 용 기 를 실행 합 니 다. 이름 은 aliyun 입 니 다.
docker run
-p 8080:80
-p 8081:443
-v $PWD/nginx/aliyun/nginx.conf:/etc/nginx/nginx.conf
-v $PWD/www/aliyun:/usr/share/nginx/html
-v $PWD/ssl/aliyun:/ect/nginx/cert/aliyun
--name aliyun -d nginx
시작 후 다음 명령 을 사용 하여 Hello aliyun 에 지 는 지 확인 합 니 다. 출력 하면 시작 에 성 공 했 음 을 표시 합 니 다. 그렇지 않 으 면 docker logs 용기 ID 로 오류 로 그 를 볼 수 있 습 니 다.
curl 127.0.0.1:8080
바 인 딩 도 메 인 이름, 전송 포트
server {
listen 80;
server_name aliyun.0558web.com;
return 301 https://$server_name:8081$request_uri
}
cd ../sites-enabled
#
ln -s ../sites-available/aliyun.conf aliyun.conf
#
nginx -t
# nginx
service nginx restart
HTTPS 환경 성공 여부 테스트
브 라 우 저 에 입력http://aliyun.0558web.com혹시https://aliyun.0558web.com:8081녹색 자 물 쇠 를 볼 수 있 습 니 다. 이때 아 리 클 라 우 드 가 제공 하 는 무료 SSL 인증 서 를 사용 합 니 다. 우 리 는 HTTPS 환경 을 성공 적 으로 구축 하 였 으 나 HTTPS 는 사용 할 수 있 지만 뒤에 포트 가 있 습 니 다. 이것 은 분명히 당신 이 원 하 는 것 이 아 닙 니 다. 아래 에 제 두 가지 해결 방법 을 공유 하 겠 습 니 다.
docker run
# 80 ->docker 80
-p 80:80
# 443 ->docker 443
-p 443:443
-v $PWD/nginx/aliyun/nginx.conf:/etc/nginx/nginx.conf
-v $PWD/www/aliyun:/usr/share/nginx/html
-v $PWD/ssl/aliyun:/ect/nginx/cert/aliyun
--name aliyun -d nginx
신청서
텐 센트 클 라 우 드 에 로그 인하 여 콘 솔 > 클 라 우 드 제품 > SSL 인증서 관 리 를 검색 하고 인증서 관리 페이지 에 들 어가 서 구 매 를 클릭 하고 도 메 인 네 임 형 무료 버 전 (DV) 을 선택 하여 무료 로 신청 합 니 다. 남 은 절차 와 아 리 클 라 우 드 의 차이 가 많 지 않 습 니 다. 자 료 를 보완 하여 인증서 아래 에 보 내 려 면 텐 센트 클 라 우 드 가 제공 하 는 SSL 을 통 해 프레젠테이션 을 하 십시오.
nginx 프로필 작성
nginx / tencent / 폴 더 에 설정 파일 을 추가 하여 docker 용기 에 표시 합 니 다.
events {
woker_connections 1024;
}
http {
server{
listen 80;
server_name location;
root /usr/share/nginx/html;
}
}
프로젝트 코드 작성
www / tencent / 폴 더 에 index. html 를 새로 만 듭 니 다.
Hello Tencent
시작 nginx
nginx 용 기 를 실행 합 니 다. 이름: tencent
docke run -p 8082:80
-v $PWD/nginx/tencent/nginx.conf:/etc/nginx/nginx.conf
-v $PWD/www/tencent:/usr/share/nginx/html
--name tencent -d nginx
실행 성공 여 부 를 판단 합 니 다.
curl 127.0.0.1:8082
# Hello Tencent
# docker logs ID
전송 포트 바 인 딩 도 메 인 이름
server{
listen 80;
server_name tencent.0558web.com;
return 301 https://$server_name$request_uri
}
server {
listen 443 default_server ssl;
server_name tencent.0558web.com;
ssl_certificate /root/project/ssl/tencent/1_tencent.0558web.com_bundle.crt;
ssl_certificate_key /root/project/ssl/tencent/2_tencent.0558web.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location /{
index index.html index.htm;
proxy_pass http://tencent.0558web.com:8082;
}
}
# /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/tencent.conf /etc/nginx/sites-enabled/tencent.conf
# nginx
nginx -t
# nginx
service nginx restart
이 럴 때 저 희 는 브 라 우 저 에서 tencent. 0558 web. com 을 열거 나...https://tencent.0558web.com초록색 자물쇠 가 다 보 여요.
부 딪 힌 구덩이
대체로 감청 포트 에 인증서 가 설정 되 어 있 지 않 지만 이름 이 설정 되 어 있 고 nginx - t 도 잘못 보고 되 지 않 았 습 니 다. 아마도 우리 가 설정 한 443 서버 포트 가 감청 되 지 않 았 을 것 입 니 다.
해결 방법:
server{
listen 443 default_server ssl;
.
.
.
}
server{
# ssl on
listen 443 ssl;
# ssl on;
}
요약: 본 고 는 아 리 운 과 텐 센트 클 라 우 드 가 제공 하 는 무료 SSL 인증 서 를 공유 하여 docker 중의 nginx 에 HTTPS 환경 을 구축 하고 주로 nginx 의 포트 로 리 트 윗 했 습 니 다. 저 는 Nginx 에 대해 입문 단계 에 속 하기 때문에 글 에서 오류 와 부족 을 피 할 수 없습니다. 그리고 여러분 께 서 지적 해 주 십시오.
케이스https://www.mphot.cn
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
첫 번째 Docker for Mac참고 , 나는 옆에 있는 Mac에 Docker를 설치하고 컨테이너를 세워 보고 싶다. Docker Hub를 처음 사용할 때는 계정을 만들어야 합니다. Docker.dmg을 실행하면 Docker가 설치됩니다. Dock...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.