So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

WBOY
Freigeben: 2023-05-15 15:25:06
nach vorne
1669 Leute haben es durchsucht

Angenommen, die Grundstruktur meines aktuellen Knotens ist wie folgt:

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

index.html Der Dateicode lautet wie folgt:

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

app.js Der Code lautet wie folgt:

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;);
});
Nach dem Login kopieren

package.json Der Code lautet wie folgt;

{
 "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"
 }
}
Nach dem Login kopieren

Dann führe ich npm im Stammverzeichnis des Projekts aus. Nach dem Ausführen von dev können Sie im Browser auf http://localhost:3001 zugreifen. Wenn ich jedoch einen Domänennamen verwenden möchte, um darauf zuzugreifen, können wir die Domäne binden Name unter der Hosts-Datei, z. B. xxx.abc.com Die Datei ist wie folgt gebunden:

127.0.0.1 xxx.abc.com
Nach dem Login kopieren

Zu diesem Zeitpunkt können wir also wie gezeigt über http://xxx.abc.com:3001/ auf die Seite zugreifen unten:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

Wie oben gezeigt, können wir auf die Seite zugreifen. Wir haben jedoch festgestellt, dass die Anzeige von HTTP-Anfragen im Chrome-Browser unsicher ist. Daher möchte ich zu diesem Zeitpunkt https für den Zugriff und die Sicherheit verwenden Die Webseite ist garantiert, aber wenn ich zu diesem Zeitpunkt nichts tue, ist ein direkter Zugriff über https beispielsweise nicht möglich: https://xxx.abc.com:3001 Wie in der Abbildung unten gezeigt :

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

Wir wissen, dass beim Zugriff über https im Allgemeinen ein Sicherheitszertifikat erforderlich ist. Daher besteht unsere aktuelle Aufgabe darin, mit Nginx Dinge wie Sicherheitszertifikate zu konfigurieren und dann über https auf die Webseite zuzugreifen das Ziel erreichen.

nginx https-Dienst konfigurieren

1 Geben Sie zunächst das Nginx-Verzeichnis ein und verwenden Sie den Befehl: cd /usr/local/etc/nginx. Erstellen Sie dann in diesem Verzeichnis den Ordner „cert“, um die Zertifikatsdatei zu speichern.
Verwenden Sie den Befehl: mkdir cert wie unten gezeigt:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

2 Dann müssen wir die zertifikatsbezogenen Dateien, wie z. B. server.crt- und server.key-Dateien, in das Zertifikatsverzeichnis kopieren. Zum Beispiel die folgende Zertifikatsdatei:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

Wie das obige Zertifikat erhalten bleibt, können Sie in meinem vorherigen Artikel lesen

Befehl verschieben: mv server.key /usr/local/etc/nginx/cert, zum Beispiel, Die Dateien server.key und server.crt werden in das Verzeichnis /usr/local/etc/nginx/cert verschoben. Wie in der Abbildung unten gezeigt:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

Dann schauen wir uns das Verzeichnis /usr/local/etc/nginx/cert an. Es gibt die folgenden Dateien, wie unten gezeigt:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

3. Nginx-Konfiguration

nginx Der folgende Code muss zur Konfiguration hinzugefügt werden:

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;
 }
}
Nach dem Login kopieren

Hinweis: Wie oben muss dieses Konfigurationselement entfernt werden. Wenn es wie oben konfiguriert ist, starte ich den Nginx-Befehl neu und es wird ein Fehler wie folgt gemeldet:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

ssl: error:06065064:digital Envelope routines:evp_decryptfinal_ex:bad decrypt error:0906a065:pem routines:pem_do_header:bad entschlüsseln Ähnlich wie bei diesem Fehler und dann über Baidu nach diesem Fehler suchen, kann er mit der folgenden Methode gelöst werden:

Geben Sie das Verzeichnis ein: cd /usr/local/etc/nginx/cert und führen Sie dann die folgenden zwei Codezeilen aus :

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
Nach dem Login kopieren

wie folgt:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

Sie können die von Baidu durchsuchte Seite sehen

Wenn ich dann Nginx weiter starte, wird weiterhin ein Fehler gemeldet:

nginx: [Warnung] Die „ssl“-Direktive ist veraltet, verwenden Sie stattdessen die „listen ... ssl“-Direktive

Dann schalten Sie SSL weiterhin ein; entfernen Sie einfach dieses Konfigurationselement, es könnte mit der Version von zusammenhängen nginx

Kürzlich auf nginx 1.15 aktualisiert, alle mit SSL nach dem Neuladen Diese Warnung wurde auf allen Websites gemeldet, nachdem ich viele Informationen überprüft hatte, fand ich schließlich eine relevante englische Erklärung auf Github: () Mein Englisch ist wahrscheinlich nicht gut bedeutet, dass Nginx 1.15 und spätere Versionen kein SSL schreiben müssen.

Gehen Sie zu nginx.conf, löschen Sie SSL und laden Sie es erneut. Bei der aktuellen Verwendung gibt es kein Problem.

Ich habe es falsch verstanden. Ich sollte SSL auf 443 SSL umstellen.

Jetzt starte ich weiterhin Nginx neu und es ist in Ordnung, wie unten gezeigt:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

Aber nach der obigen Konfiguration können wir den Domainnamen https://xxx.abc.com/ nicht direkt verwenden, um darauf zuzugreifen, wir Sie müssen noch das zuvor generierte client.crt-Zertifikat auf dem Server durchsuchen. Die Schritte unter dem Mac-System sind wie folgt:

1 Klicken Sie auf den Launcher, wie unten gezeigt. Wie unten gezeigt:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

2. Suchen Sie nach Schlüsselbundzugriff und klicken Sie darauf, wie unten gezeigt

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

3 . Gehen Sie zur Zertifikatsseite und ziehen Sie unser vorheriges client.crt-Zertifikat in das Zertifikat. Das zuvor generierte client.crt-Zertifikat lautet beispielsweise wie folgt:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes#🎜 🎜## 🎜🎜#4. Klicken Sie mit der rechten Maustaste auf mein Zertifikat und dann auf „Profil anzeigen“, um die Seite mit den Zertifikatsdetails aufzurufen. Wie im Bild unten gezeigt:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes5 Wählen Sie nach dem Aufrufen der Seite bei Verwendung des Zertifikats Immer vertrauen, wie im Bild unten gezeigt:

# 🎜🎜#

6 Dann müssen Sie möglicherweise das Einschaltkennwort des Computers eingeben. Es wird automatisch gespeichert. Dann können wir im Browser auf die Seite https://xxx.abc.com/ zugreifen. Wie unten gezeigt:

So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes


Dann klicken wir, um den Besuch fortzusetzen, und Sie sehen die Seite, wie unten gezeigt:

# 🎜 🎜#So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

Das Obige besteht darin, Nginx + Zertifikat zu verwenden, um den lokalen Knoten-https-Dienst zu implementieren.

Aber obwohl auf das obige https zugegriffen werden kann, wird der unsichere Text immer noch vor https angezeigt, wie im Bild unten gezeigt: So konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes

#🎜🎜 #

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie das Nginx-SSL-Zertifikat zur Implementierung des https-Dienstes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!