検索
ホームページ運用・保守Nginxhttpsサービスを実装するために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 run dev を実行すると、ブラウザで http://localhost:3001 にアクセスできますが、ドメイン名を使用してアクセスしたい場合は、hosts ファイルの下にドメイン名をバインドできます (例: xxx.abc.com)。hosts ファイルは次のようにバインドされています:

127.0.0.1 xxx.abc.com

したがって、この時点ではhttp://xxx.abc.com:3001/ を使用してアクセスできます。ページは次のとおりです。

httpsサービスを実装するためにnginx SSL証明書を構成する方法

上記のように、ページにアクセスできますが、 Chrome ブラウザで http リクエストを表示するのは安全ではないことがわかったので、現時点では https を使用してアクセスし、Web ページのセキュリティが保証されているようにしたいと考えています。 https を使用してアクセスすると機能しません。たとえば、アドレス: https:///xxx.abc.com:3001。次の図に示すように:

httpsサービスを実装するためにnginx SSL証明書を構成する方法

https を使用してアクセスするには一般にセキュリティ証明書が必要であることがわかっているため、現在のタスクは nginx を使用してセキュリティ証明書などを構成し、https を使用して Web ページにアクセスして目的を達成することです。

nginx 設定 https サービス

1. まず、nginx ディレクトリに入り、コマンド cd /usr/local/etc/nginx を使用します。次に、このディレクトリに証明書フォルダーを作成し、証明書ファイルを保存します。
コマンド: mkdir cert を次のように使用します:

httpsサービスを実装するためにnginx SSL証明書を構成する方法

2. 次に、server.crt ファイルやserver.key ファイルなどの証明書関連ファイルをコピーする必要があります。証明書ディレクトリにコピーします。たとえば、次の証明書ファイル:

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 設定

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 はオンになっており、この設定項目には次のコードが必要です。削除されます。上記のように設定されている場合、nginx コマンドを再起動すると、次のようなエラーが報告されます。このエラーと同様のエラー :0906a065:pem ルーチン:pem_do_header:bad 復号化してから、Baidu でこのエラーを検索すると、次の方法で解決できます:

ディレクトリを入力してください: cd /usr/local/etc/nginx /cert を入力し、次の 2 行のコードを実行します。

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
httpsサービスを実装するためにnginx SSL証明書を構成する方法以下に示すように:

Baidu

# で検索されたページが表示されます。 ##その後、nginx の再起動を続けると、依然としてエラーが報告されることがわかりました。エラー メッセージは次のとおりでした:

httpsサービスを実装するためにnginx SSL証明書を構成する方法nginx: [警告] "ssl" ディレクティブは非推奨です。代わりに「listen ... ssl」ディレクティブ

その後、ssl をオンにし続けます。この設定項目は削除できます。これは、nginx

のバージョンに関連している可能性があります。最近私はnginx 1.15 にアップグレードしました。リロード後、SSL を使用するすべてのサイトは、この警告を報告し、多くの情報を確認し、最終的に github で関連する英語の説明を見つけました: ( ) 私の英語は苦手です。おそらく nginx 1.15 ということです。それ以降のバージョンでは、SSL を書き込む必要がなくなりました。

nginx.conf にアクセスし、ssl on を削除してリロードすると、案の定、再びアラームは発生せず、現在の使用には問題ありません。

理解が間違っていました。443 ssl をリッスンするには ssl をオンに変更する必要があります。これは正しいです。

ここで、nginx の再起動を続けます。以下に示すように、問題はありません。

ただし、上記の設定後は、ドメインを直接使用できなくなります。 name https:// xxx.abc.com/ にアクセスした後、前に生成した client.crt 証明書をブラウザにインストールする必要があります。Mac システムでの手順は次のとおりです:

1. をクリックします。以下に示すように、ランチャー上で。次のように:###

httpsサービスを実装するためにnginx SSL証明書を構成する方法

2. 以下に示すように、キーチェーン アクセスを検索してクリックします。

httpsサービスを実装するためにnginx SSL証明書を構成する方法

3. 証明書ページに入り、「Just」と入力します。 client.crt 証明書を証明書にドラッグします。たとえば、前に生成した client.crt 証明書は次のとおりです:

httpsサービスを実装するためにnginx SSL証明書を構成する方法

4. 証明書を右クリックし、 「プロファイルを表示」をクリックして、証明書の詳細ページに入ります。次の図に示すように:

httpsサービスを実装するためにnginx SSL証明書を構成する方法

#5. ページに入った後、証明書を使用するときに、次の図に示すように [常に信頼する] を選択します。

#6. その後終了します。コンピューターの電源投入時パスワードの入力が必要になる場合があります。入力すると、自動的に保存されます。次に、ブラウザで https://xxx.abc.com/ ページにアクセスできます。以下に示すように: httpsサービスを実装するためにnginx SSL証明書を構成する方法


# 次に、クリックしてアクセスを続けると、以下に示すページが表示されます:

httpsサービスを実装するためにnginx SSL証明書を構成する方法

上記は、nginx 証明書を使用してローカル ノード https サービスを実装することです。

httpsサービスを実装するためにnginx SSL証明書を構成する方法ただし、上記のように https にアクセスできますが、次の図に示すように、https の前に安全でないコピーライティングが表示されます。

以上がhttpsサービスを実装するためにnginx SSL証明書を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Nginx vs. Apache:長所と短所を調べますNginx vs. Apache:長所と短所を調べますApr 27, 2025 am 12:05 AM

Nginxは、高い同時コンテンツと静的コンテンツの処理に適していますが、Apacheは複雑な構成と動的コンテンツに適しています。 1。NGINXは、交通量の多いシナリオに適した同時接続を効率的に処理しますが、動的コンテンツを処理するときは追加の構成が必要です。 2。Apacheは、複雑なニーズに適したリッチモジュールと柔軟な構成を提供しますが、並行性のパフォーマンスが低いです。

NginxとApache:重要な違​​いを理解するNginxとApache:重要な違​​いを理解するApr 26, 2025 am 12:01 AM

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

Nginxユニット:主要な機能と機能Nginxユニット:主要な機能と機能Apr 25, 2025 am 12:17 AM

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

Nginxユニットvs他のアプリケーションサーバーNginxユニットvs他のアプリケーションサーバーApr 24, 2025 am 12:14 AM

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxユニット:アーキテクチャとその仕組みNginxユニット:アーキテクチャとその仕組みApr 23, 2025 am 12:18 AM

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

Nginxユニットの使用:アプリケーションの展開と管理Nginxユニットの使用:アプリケーションの展開と管理Apr 22, 2025 am 12:06 AM

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

Nginx vs. Apache:Webサーバーの比較分析Nginx vs. Apache:Webサーバーの比較分析Apr 21, 2025 am 12:08 AM

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要な​​シナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。

Nginxユニットの利点:柔軟性とパフォーマンスNginxユニットの利点:柔軟性とパフォーマンスApr 20, 2025 am 12:07 AM

Nginxunitは、動的な構成と高性能アーキテクチャにより、アプリケーションの柔軟性とパフォーマンスを向上させます。 1.動的構成により、サーバーを再起動せずにアプリケーション構成を調整できます。 2.高性能は、イベント駆動型および非ブロッキングアーキテクチャおよびマルチプロセスモデルに反映され、同時接続を効率的に処理し、マルチコアCPUを利用できます。

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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。