찾다
운영 및 유지보수엔진스https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

현재 노드의 기본 구조가 다음과 같다고 가정합니다.

|----项目
| |--- static     # 存放html文件
| | |--- index.html  # index.html
| |--- node_modules  # 依赖包
| |--- app.js     # node 入口文件
| |--- package.json 
| |--- .babelrc    # 转换es6文件

index.html 파일 코드는 다음과 같습니다.

<!doctype html>
<html>
<head>
 <meta charset=utf-8>
 <meta name="referrer" content="never">
 <title>nginx配置https</title>
</head>
<body>
 <div>
  <h2 id="欢迎使用https来访问页面">欢迎使用https来访问页面</h2>
 </div>
</body>
</html>

app.js 코드는 다음과 같습니다.

const koa = require(&#39;koa&#39;);
const fs = require(&#39;fs&#39;);
const path = require(&#39;path&#39;);
const router = require(&#39;koa-router&#39;)();
const koabody = require(&#39;koa-body&#39;);
const static = require(&#39;koa-static&#39;);

const app = new koa();

router.get(&#39;/&#39;, (ctx, next) => {
 // 设置头类型, 如果不设置,会直接下载该页面
 ctx.type = &#39;html&#39;;
 // 读取文件
 const pathurl = path.join(__dirname, &#39;/static/index.html&#39;);
 ctx.body = fs.createreadstream(pathurl);
 next();
});

app.use(static(path.join(__dirname)));

app.use(router.routes());
app.use(router.allowedmethods());

app.listen(3001, () => {
 console.log(&#39;server is listen in 3001&#39;);
});

package.json 코드는 다음과 같습니다.

{
 "name": "uploadandload",
 "version": "1.0.0",
 "description": "",
 "main": "app.js",
 "scripts": {
  "dev": "nodemon ./app.js"
 },
 "author": "",
 "license": "isc",
 "dependencies": {
  "fs": "0.0.1-security",
  "koa": "^2.7.0",
  "koa-body": "^4.1.0",
  "koa-router": "^7.4.0",
  "koa-send": "^5.0.0",
  "koa-static": "^5.0.0",
  "nodemon": "^1.19.0",
  "path": "^0.12.7"
 }
}

그런 다음 프로젝트의 루트 디렉터리에서 npm을 실행합니다. dev를 실행한 후 브라우저에서 http://localhost:3001에 액세스할 수 있지만 도메인 이름을 사용하여 액세스하려면 도메인을 바인딩하면 됩니다. xxx.abc.com과 같은 호스트 파일 아래에 이름이 있습니다. 호스트 파일은 다음과 같이 바인딩됩니다.

127.0.0.1 xxx.abc.com

따라서 이때 표시된 것처럼 http://xxx.abc.com:3001/을 사용하여 페이지에 액세스할 수 있습니다. 아래:

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

위에 표시된 것처럼 페이지에 액세스할 수 있지만 Chrome 브라우저에서 http 요청을 표시하는 것이 안전하지 않다는 것을 발견했기 때문에 이번에는 https를 사용하여 액세스하고 싶습니다. 웹 페이지는 보장되지만 이때 아무것도 하지 않으면 https://xxx.abc.com:3001 주소를 사용하여 직접 접속할 수 없습니다. :

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

https를 사용하여 액세스하는 경우 일반적으로 보안 인증서가 필요하다는 것을 알고 있으므로 현재 작업은 nginx를 사용하여 보안 인증서와 같은 항목을 구성한 다음 https를 사용하여 웹 페이지에 액세스하는 것입니다. 목표를 달성하십시오.

nginx https 서비스 구성

1. 먼저 nginx 디렉토리에 들어가서 cd /usr/local/etc/nginx 명령을 사용하세요. 그런 다음 이 디렉터리에 인증서 파일을 저장할 cert 폴더를 만듭니다.
아래와 같이 mkdir cert 명령을 사용하세요.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

2 그런 다음 server.crt 및 server.key 파일과 같은 인증서 관련 파일을 cert 디렉터리에 복사해야 합니다. 예를 들어 다음 인증서 파일은 다음과 같습니다.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

위 인증서가 어떻게 유지되는지에 대해서는 이전 기사

Move 명령을 읽어보세요. mv server.key /usr/local/etc/nginx/cert, 예: server.key 및 server.crt 파일이 /usr/local/etc/nginx/cert 디렉터리로 이동되었습니다. 아래 그림과 같이:

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

그런 다음 /usr/local/etc/nginx/cert 디렉토리를 보면 아래와 같은 파일이 있습니다.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

3. nginx 다음 코드를 구성에 추가해야 합니다.

server {
 listen    443 ssl;
 server_name  xxx.abc.com;
 ssl on; // 该配置项需要去掉
 ssl_certificate   cert/server.crt;
 ssl_certificate_key cert/server.key;
 /*
  设置ssl/tls会话缓存的类型和大小。如果设置了这个参数一般是shared,buildin可能会参数内存碎片,默认是none,和off差不多,停用缓存。如shared:ssl:10m表示我所有的nginx工作进程共享ssl会话缓存,官网介绍说1m可以存放约4000个sessions。
 */
 ssl_session_cache  shared:ssl:1m;
 // 客户端可以重用会话缓存中ssl参数的过期时间,内网系统默认5分钟太短了,可以设成30m即30分钟甚至4h。
 ssl_session_timeout 5m;

 /*
  选择加密套件,不同的浏览器所支持的套件(和顺序)可能会不同。
  这里指定的是openssl库能够识别的写法,你可以通过 openssl -v cipher &#39;rc4:high:!anull:!md5&#39;(后面是你所指定的套件加密算法) 来看所支持算法。
 */
 ssl_ciphers high:!anull:!md5;

 // 设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件。
 ssl_prefer_server_ciphers on;

 location / {
  proxy_pass http://localhost:3001;
 }
}

참고: 위와 같이 ssl on은 이 구성 항목을 제거해야 합니다. 위와 같이 구성한 경우 nginx 명령을 다시 시작하면 다음과 같은 오류가 보고됩니다.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법ssl: error:06065064:digital envelop routines:evp_decryptfinal_ex:bad decrypt error:0906a065:pem routines:pem_do_header:bad decrypt 이 오류와 유사하게 Baidu를 통해 이 오류를 검색하면 다음 방법으로 해결할 수 있습니다.

디렉토리를 입력합니다: cd /usr/local/etc/nginx/cert 그런 다음 다음 두 줄의 코드를 실행합니다. :

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

다음과 같습니다.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법Baidu에서 검색한 페이지를 볼 수 있습니다

그러다가 nginx를 계속 다시 시작하면 여전히 오류 메시지가 보고되는 것을 발견합니다.

nginx: [경고] "ssl" 지시어는 더 이상 사용되지 않습니다. 대신 "listen ... ssl" 지시어를 사용하세요

그런 다음 SSL을 계속 켜서 이 구성 항목을 제거하세요. 버전과 관련이 있을 수 있습니다. nginx

최근 nginx 1.15로 업그레이드되었으며 모두 다시 로드한 후 이 경고가 모든 사이트에 보고되었습니다. 많은 정보를 확인한 후 마침내 github에서 관련 영어 설명을 찾았습니다. ( ) 내 영어가 좋지 않은 것 같습니다. nginx 1.15 이상 버전에서는 ssl을 작성할 필요가 없음을 의미합니다.

nginx.conf로 이동하여 SSL을 삭제한 다음 다시 로드하면 현재 사용에는 문제가 없습니다.

제가 잘못 이해했습니다. 443 SSL을 들으려면 SSL을 변경해야 합니다.

이제 계속해서 nginx를 다시 시작하면 아래와 같이 괜찮습니다.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법하지만 위 구성 후에는 도메인 이름 https://xxx.abc.com/을 직접 사용하여 액세스할 수 없습니다. 여전히 탐색이 필요합니다. 이전에 생성한 client.crt 인증서를 서버 아래에 설치하세요. Mac 시스템의 단계는 다음과 같습니다.

1 아래와 같이 실행기를 클릭하세요. 아래와 같이:

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

2. 아래와 같이 키체인 액세스를 검색하고 클릭합니다.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

3. 인증서 페이지에 들어가서 이전 client.crt 인증서를 client.crt 이전에 생성한 인증서로 드래그합니다.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

4. 내 인증서를 마우스 오른쪽 버튼으로 클릭한 다음 "소개 표시"를 클릭하여 인증서 세부 정보 페이지로 들어갑니다. 아래 그림과 같이:

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

5. 페이지에 들어간 후 인증서를 사용할 때 아래 그림과 같이 항상 신뢰를 선택합니다.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

6 그런 다음 종료해야 할 수도 있습니다. 입력이 완료되면 컴퓨터 전원 켜기 암호가 자동으로 저장됩니다. 그런 다음 브라우저에서 https://xxx.abc.com/ 페이지에 액세스할 수 있습니다. 아래와 같이:

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

그런 다음 계속 방문을 클릭하면 아래와 같은 페이지가 표시됩니다.

https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법

위는 nginx + 인증서를 사용하여 로컬 노드 https 서비스를 구현하는 것입니다.

그러나 위와 같이 https에 접근할 수는 있지만, 아래 그림과 같이 여전히 https 앞에 unsafe copywriting이 표시됩니다.

위 내용은 https 서비스를 구현하기 위해 nginx SSL 인증서를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Nginx vs. Apache : 웹 호스팅 및 트래픽 관리Nginx vs. Apache : 웹 호스팅 및 트래픽 관리Apr 12, 2025 am 12:04 AM

NGINX는 동시성이 높은 자원 소비 시나리오에 적합하지만 APACHE는 복잡한 구성 및 기능 확장이 필요한 시나리오에 적합합니다. 1.NGINX는 고성능과의 많은 동시 연결을 처리하는 것으로 알려져 있습니다. 2. Apache는 안정성과 풍부한 모듈 지원으로 유명합니다. 선택할 때는 특정 요구에 따라 결정해야합니다.

NGINX : 최신 웹 애플리케이션을위한 다목적 도구NGINX : 최신 웹 애플리케이션을위한 다목적 도구Apr 11, 2025 am 12:03 AM

nginxissentialderformodernwebapplicationsduetoitsrolessareareverseproxy, loadbalancer 및 Webserver, HighperformanceAndscalability를 제공합니다

Nginx SSL/TLS 구성 : HTTPS로 웹 사이트 보안Nginx SSL/TLS 구성 : HTTPS로 웹 사이트 보안Apr 10, 2025 am 09:38 AM

Nginx를 통해 웹 사이트 보안을 보장하려면 다음 단계가 필요합니다. 1. 기본 구성을 만들고 SSL 인증서 및 개인 키를 지정하십시오. 2. 구성 최적화, HTTP/2 및 OCSPStapling 활성화; 3. 인증서 경로 및 암호화 제품군 문제와 같은 공통 오류 디버그; 4. Let 'sencrypt 및 세션 멀티플렉싱 사용과 같은 응용 프로그램 성능 최적화 제안.

Nginx 인터뷰 질문 : ACE 귀하의 DevOps/System Admin 인터뷰Nginx 인터뷰 질문 : ACE 귀하의 DevOps/System Admin 인터뷰Apr 09, 2025 am 12:14 AM

NGINX는 고성능 HTTP 및 리버스 프록시 서버로 높은 동시 연결을 처리하는 데 능숙합니다. 1) 기본 구성 : 포트를 듣고 정적 파일 서비스를 제공합니다. 2) 고급 구성 : 리버스 프록시 및로드 밸런싱을 구현하십시오. 3) 디버깅 기술 : 오류 로그를 확인하고 구성 파일을 테스트하십시오. 4) 성능 최적화 : GZIP 압축을 활성화하고 캐시 정책을 조정합니다.

Nginx 캐싱 기술 : 웹 사이트 성능 향상Nginx 캐싱 기술 : 웹 사이트 성능 향상Apr 08, 2025 am 12:18 AM

Nginx 캐시는 다음 단계를 통해 웹 사이트 성능을 크게 향상시킬 수 있습니다. 1) 캐시 영역을 정의하고 캐시 경로를 설정하십시오. 2) 캐시 유효성 기간 구성; 3) 다른 컨텐츠에 따라 다른 캐시 정책을 설정합니다. 4) 캐시 저장 및로드 밸런싱을 최적화합니다. 5) 캐시 효과를 모니터링하고 디버그합니다. 이러한 방법을 통해 NGINX 캐시는 백엔드 서버 압력을 줄이고 응답 속도 및 사용자 경험을 향상시킬 수 있습니다.

Docker와 Nginx : 컨테이너화 된 응용 프로그램을 배포하고 스케일링합니다Docker와 Nginx : 컨테이너화 된 응용 프로그램을 배포하고 스케일링합니다Apr 07, 2025 am 12:08 AM

dockercompose를 사용하면 Nginx의 배포 및 관리를 단순화 할 수 있으며 Dockerswarm 또는 Kubernetes를 통한 스케일링은 일반적인 관행입니다. 1) DockerCompose를 사용하여 Nginx 컨테이너를 정의하고 실행하십시오. 2) Dockerswarm 또는 Kubernetes를 통한 클러스터 관리 및 자동 스케일링 구현.

고급 NGINX 구성 : 서버 블록 마스터 링 및 리버스 프록시고급 NGINX 구성 : 서버 블록 마스터 링 및 리버스 프록시Apr 06, 2025 am 12:05 AM

NGINX의 고급 구성은 서버 블록 및 리버스 프록시를 통해 구현 될 수 있습니다. 1. 서버 블록을 사용하면 여러 웹 사이트를 한쪽으로 실행할 수있게되면 각 블록은 독립적으로 구성됩니다. 2. 리버스 프록시는 요청을 백엔드 서버로 전달하여로드 밸런싱 및 캐시 가속도를 실현합니다.

Nginx 성능 튜닝 : 속도 및 낮은 대기 시간을 최적화합니다Nginx 성능 튜닝 : 속도 및 낮은 대기 시간을 최적화합니다Apr 05, 2025 am 12:08 AM

작업자 프로세스 수, 연결 풀 크기, GZIP 압축 및 HTTP/2 프로토콜을 활성화하고 캐시 및로드 밸런싱을 사용하여 NGINX 성능 튜닝을 달성 할 수 있습니다. 1. 작업자 프로세스 수 및 연결 풀 크기 조정 : Worker_ProcessesAuto; 이벤트 {worker_connections1024;}. 2. GZIP 압축 및 HTTP/2 프로토콜 활성화 : http {gzipon; server {listen443sslhttp2;}}. 3. 캐시 최적화 사용 : http {proxy_cache_path/path/to/cachelevels = 1 : 2k

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기