http를 https로 업그레이드하기 위해 OpenSSL을 사용하여 win에서 자체 서명된 인증서를 생성하는 방법

http를 https로 업그레이드하기 위해 OpenSSL을 사용하여 win에서 자체 서명된 인증서를 생성하는 방법

머리말

HTTPS는 실제로 SSL을 통한 HTTP입니다. 즉, SSL 보안 연결 위에 HTTP 연결이 설정됩니다.

자체 서명된 인증서를 생성하려면 openssl을 설치해야 합니다. 이 문서의 OpenSSL 설치 섹션을 참조하십시오 .

OpenSSL을 사용하여 자체 서명된 인증서를 생성하는 단계: OpenSSL을 사용하여 자체 서명된 인증서를 생성하려면 이 문서의 섹션을 참조하십시오 .

  1. 개인 키 생성 키(.key 파일);
  2. 서명 요청(.csr 파일)을 생성합니다.
  3. 키의 암호
  4. 키(.key+.csr=>.crt)로 인증서 서명

HTTPS용으로 준비된 인증서는 생성된 서명 요청의 CN이 도메인 이름과 정확히 동일해야 한다는 점에 유의해야 합니다. 그렇지 않으면 브라우저 확인을 통과할 수 없습니다.

CA 인증서와 자체 서명된 인증서의 차이점은 무엇입니까?

CA 인증서와 자체 서명된 인증서는 둘 다 암호화된 통신에 사용되는 디지털 인증서이지만 둘 사이에는 몇 가지 중요한 차이점이 있습니다.

  1. CA 인증서는 공인된 디지털 인증 기관(CA)에서 발급하는 반면 자체 서명된 인증서는 사용자가 직접 생성합니다. CA는 Certificate Authority의 약자로 "Certificate Authorization Center"라고도 합니다.

  2. CA 인증서는 기관에서 신뢰하고 규제하기 때문에 더 안전합니다. 자체 서명된 인증서의 보안은 사용자의 기술과 프로세스에 따라 다릅니다.

  3. CA 인증서는 이미 많은 브라우저와 운영 체제에서 신뢰하고 있기 때문에 공용 네트워크와 웹사이트에서 사용할 수 있습니다. 자체 서명된 인증서는 개인 네트워크 또는 테스트 목적으로만 사용해야 합니다.

  4. CA 인증서는 수수료가 있지만 자체 서명 인증서는 무료입니다.

전반적으로 공용 네트워크에서 웹 사이트나 응용 프로그램을 실행해야 하는 경우 CA 인증서가 권장됩니다. 개인 네트워크에서 통신 또는 테스트만 암호화해야 하는 경우 자체 서명된 인증서를 사용할 수 있습니다.

OpenSSL 설치

OpenSSL 설치 패키지 다운로드

Win OpenSSL 설치 패키지를 다운로드하려면 https://slproweb.com/products/Win32OpenSSL.html로 이동하십시오.

exe와 msi 중 하나를 선택할 수 있습니다. Light 버전은 경량 버전이므로 정식 버전을 직접 다운로드합니다.

이미지-20230620164808956

다운로드는 Win64OpenSSL_Light-3_1_1.msi입니다.

설치하다

대부분의 설치 프로세스는 기본적으로 선택할 수 있습니다.

Windows/System/다음 디렉토리 또는 bin설치 디렉토리의 디렉토리 에 OpenSSL DLL을 설치하도록 선택할 때 bin시스템 디렉토리에 있는 다른 소프트웨어의 DLL이 OpenSSL에 영향을 미치지 않도록 디렉토리를 선택합니다.

이미지-20230620165052362

다른 페이지에서 다음을 클릭하여 설치를 완료하십시오.

마지막으로 이 페이지에서 작성자 보상을 선택할 수 있으며, 보상을 원하지 않는 경우 모두 선택을 취소할 수 있습니다.

이미지-20230620165435140

설치가 완료되었습니다.

이미지-20230620165641032

환경 변수 설정

또한 시스템 환경 변수에 경로를 추가해야 합니다.C:\Program Files\OpenSSL-Win64\bin

이미지-20230620170325508

추가한 후 오른쪽의 위로 이동 버튼을 클릭하여 맨 위로 이동합니다.

이미지-20230620170443484

변경 사항을 저장하면 됩니다.

올바른 설치 확인

cmd를 열고 다음 명령을 입력하여 버전을 확인합니다.

openssl version

이미지-20230620170841365

성공적으로 설치되었음을 알 수 있습니다. 설치한 버전 정보가 아닌 경우 컴퓨터를 다시 시작해야 할 수 있습니다.

OpenSSL을 사용하여 자체 서명된 인증서 생성

SSL 폴더로 이동

생성된 인증서 파일을 저장할 SSL 폴더를 만듭니다. 내 것은D:\ssl证书

cmd를 열고 SSL 폴더 경로로 이동한 다음 openssl 명령을 입력하고 Enter 키를 누릅니다.

D:
cd D:\ssl证书
openssl

이미지-20230620172004479

서버 개인 키(.key 파일) 생성

키 파일을 생성하려면 다음 명령을 입력하십시오.

openssl genrsa -des3 -out server.pass.key 2048

그런 다음 비밀번호를 4자리 이상 입력한 후 비밀번호를 다시 입력하세요. 그림과 같이:

이미지-20230621151645656

명령은 다음과 같이 설명됩니다.

genra: RSA 개인 키 생성
-des3: des3 알고리즘 사용
-out: 생성된 파일 이름 지정
2048: 개인 키 길이를 2048로 설정

이미지-20230621151833827

개인 키에서 암호를 제거하십시오.

openssl rsa -in server.pass.key -out server.key

rsa: RSA 개인 키 생성

-in: 개인 키 파일 입력

-out: 개인 키 파일 출력

암호 없음: 암호 없이 개인 키 파일을 설정합니다.

그런 다음 server.pass.key의 암호를 입력합니다. 그림과 같이:

이미지-20230621154021717

이미지-20230621154213483

인증서 서명 요청 생성(.csr 파일)

인증서 서명 요청을 생성하려면 다음 명령을 입력하십시오.

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=OrganizeName/OU=UnitName/CN=192.168.0.174"

req: 인증서 서명 요청 생성
-new: 새로 생성됨
-key: 개인 키 파일
-out: 생성된 CSR 파일의 이름 지정
-subj: CSR 인증서 생성을 위한 매개 변수

subj 매개변수 설명은 다음과 같습니다.

필드 성명
/씨= 국가 CN
/ST= State or Province 주/성 저장성
/엘= 위치 또는 도시 도시 항저우
/O= 조직 조직/기업 구성 이름
/OU= 조직 단위 부서 단위 이름
/CN= 일반 이름 도메인 이름 또는 IP www.yourdomain.com 또는 192.168.xx

이미지-20230621162346434

이미지-20230621162257265

자체 서명된 SSL 인증서(.crt 파일) 생성

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

이미지-20230621164408154

이미지-20230621164506161

-days: 인증서 유효 기간

-req: 인증서 필요

-in: 입력 csr 파일

-signkey: .key 파일 지정

-out: crt 파일 출력

폴더에는 server.pass.key, server.key, server.csr, server.crt 총 4개의 파일이 있습니다.

그 중 nginx를 구성하려면 server.key와 server.crt 두 파일이 필요하다.

이 시점에서 인증서 생성이 완료됩니다.

X.509 인증서에는 키, csr, crt
키는 클라이언트로 전송된 데이터를 암호화하는 데 사용되는 서버의 개인 키 파일, 클라이언트로부터 수신된 데이터를 해독하는 데 사용되는 세 개의 파일이 포함되어 있습니다
. csr은 인증서 서명 요청 파일입니다. 인증서 서명을 위해 인증 기관(CA)에 제출하는 데 사용됨
crt는 인증 기관(CA)에서 서명한 인증서 또는 개발자가 자체 서명한 인증서로 인증서 소유자의 정보, 소유자의 공개 키 , 서명자의 서명 및 기타 정보
참고: 암호화에서 X.509는 공개 키 인증, 인증서 폐기 목록, 권한 인증서, 인증서 경로 확인 알고리즘 등을 규정하는 표준입니다.

이미지-20230621170451632

자체 서명된 인증서 사용(예: Nginx 사용)

서버에서 SSL 인증서 업로드

웹 서버는 server.crt확인을 위해 브라우저로 보낸 다음 server.key브라우저에서 보낸 데이터를 해독하는 데 사용해야 합니다. (나머지 두 파일은 server.pass.keyserver.csr이상 필요하지 않습니다.)

이미지-20230626154433703

서버는 포트 443을 구성하고 SSL 인증서를 사용합니다.

Nginx를 예로 들어 .net %你的Nginx安装目录%/conf/nginx.conf에 포트 443의 모니터링을 추가합니다.

다음에서 구성 해야 합니다 server{...}.

	server {
		#监听443端口
		listen       443 ssl; 
		server_name  127.0.0.1;
		#ssl证书的crt文件路径
		ssl_certificate     D:\\SSLCertificate\\server.crt;
		#ssl证书的key文件路径
		ssl_certificate_key D:\\SSLCertificate\\server.key;
		#反向代理
		location / {
			root   html;
			index  index.html index.htm;
			proxy_pass  http://127.0.0.1:7001;
			}
	}

이미지-20230626155337110

수정 완료 후 다음 명령어를 입력하여 다시 불러 nginx.conf오기

D:
cd D:\Nginx
nginx -s reload

클라이언트 액세스 https

모든 것이 잘 되면 브라우저를 열고 HTTPS를 통해 웹사이트에 액세스할 수 있습니다. 첫 번째 방문 시 그림과 같이 경고가 표시됩니다(브라우저에서 자체 서명된 인증서를 신뢰하지 않기 때문).

이미지-20230627090738002

방법 1: 브라우저 및 운영 체제에서 자체 인증 기관을 수락하도록 강제 지정

한 가지 방법은 [고급] -> [192.168.xx(안전하지 않음)으로 계속 진행]을 클릭하는 것입니다.

브라우저와 운영 체제가 자체 인증 기관을 수락하도록 강제할 수 있습니다. 따라서 CA 인증서가 설치되고 신뢰할 수 있는 목록에 추가되면 보안 경고가 표시되지 않습니다.

방법 2: 브라우저/운영 체제에 인증 기관 설치

대안: CA 인증서를 개발 팀과 공유하여 브라우저에 설치할 수도 있습니다. 브라우저를 통해 인증서를 가져와 "신뢰할 수 있음"으로 설정하면 나중에 웹 사이트를 방문할 때 컴퓨터가 웹 서버에 안전하게 연결할 수 있습니다.

  1. MAC 사용자는 이 가이드를 참조하십시오
  2. Windows 사용자는 이 가이드를 참조하십시오.

참조 기사

자체 서명된 SSL 인증서로 Nginx 구성

OpenSSL을 사용하여 자체 서명된 SSL 인증서 생성

OpenSSL을 사용하여 자체 서명된 인증서를 만드는 방법

추천

출처blog.csdn.net/guigenyi/article/details/131424405