So konfigurieren Sie Nginx für die Unterstützung von https
1. Einführung
Das HTTP-Protokoll wird zum Übertragen von Informationen zwischen Webbrowsern und Website-Servern verwendet und bietet keine Form der Datenverschlüsselung Lesen Sie die Informationen in der Übertragungsnachricht zwischen dem Webbrowser und dem Website-Server direkt.
Daher ist das HTTP-Protokoll nicht für die Übertragung vertraulicher Informationen wie Kreditkartennummern, Passwörter und anderer Zahlungsinformationen geeignet Lösen Sie das Problem von http. Dieser Fehler im Protokoll erfordert die Verwendung eines anderen Protokolls: Secure Sockets Layer Hypertext Transfer Protocol. Um die Sicherheit der Datenübertragung zu gewährleisten, ist HTTP auf das SSL-Protokoll angewiesen, um die Identität zu überprüfen Server und verschlüsselt die Kommunikation zwischen Browser und Server.
2. Vorteile von httpsObwohl Institutionen, die Root-Zertifikate kontrollieren, und Organisationen, die Verschlüsselungsalgorithmen kontrollieren, auch Man-in-the-Middle-Angriffe durchführen können Die Lösung bietet unter der aktuellen Architektur vor allem die folgenden Vorteile:
(1) Durch die Verwendung des https-Protokolls können Benutzer und Server authentifiziert werden, wodurch sichergestellt wird, dass Daten an den richtigen Client und Server gesendet werden.
(2) Das https-Protokoll wird erstellt vom SSL + http-Protokoll und kann eine verschlüsselte Übertragung durchführen. Das Netzwerkprotokoll zur Identitätsauthentifizierung ist sicherer als das http-Protokoll, wodurch verhindert werden kann, dass Daten während der Übertragung gestohlen oder geändert werden, und die Integrität der Daten sichergestellt wird.
(3) https ist die sicherste Lösung unter der aktuellen Architektur. Obwohl es nicht absolut sicher ist, erhöht es die Kosten von Man-in-the-Middle-Angriffen erheblich.
(4) Google hat seinen Suchmaschinenalgorithmus im August 2014 angepasst und erklärt, dass „Websites, die https-Verschlüsselung verwenden, im Vergleich zu gleichwertigen http-Websites in den Suchergebnissen einen höheren Rang einnehmen.“
3. Nachteile von httpsObwohl https relativ gesehen große Vorteile hat, weist es immer noch Mängel auf:
(1) Die Handshake-Phase des https-Protokolls ist zeitaufwändiger und führt zum Laden der Seite Die Zeit wird um fast 50 % verlängert und der Stromverbrauch steigt um 10 % bis 20 % betroffen sein;
(3) Je leistungsfähiger das Zertifikat ist, desto höher sind die Kosten. Persönliche Websites und kleine Websites werden es im Allgemeinen nicht verwenden.
(4) SSL-Zertifikate müssen normalerweise an IP gebunden werden. IPv4-Ressourcen können diesen Verbrauch nicht unterstützen.
(5) Der Verschlüsselungsumfang des https-Protokolls ist ebenfalls relativ begrenzt und hat kaum Auswirkungen auf Hackerangriffe, Denial-of-Service-Angriffe, Server-Hijacking usw. Das Wichtigste ist, dass das Kreditkettensystem des SSL-Zertifikats nicht sicher ist. Insbesondere wenn einige Länder das CA-Stammzertifikat kontrollieren können, sind auch Man-in-the-Middle-Angriffe möglich.
4. Certbot herunterladenGit-Download hier verwenden. Wenn Sie Git noch nicht installiert haben, prüfen Sie, wie Sie
Verzeichnis wechselncd /usr/local

https-Zertifikat beantragen
Aktuelles Zertifikat anzeigengit clone https: // github.com/certbot/certbot.git
Konfigurieren Sie den Domainnamen
Kopieren Sie den Code Der Code lautet wie folgt:
./certbot-auto --server https: // acme-v02.api.letsencrypt .org/directory -d api.nl166.com --manual --preferred-challenges dns-01 certonly Konfigurieren Sie den Domainnamen der zweiten Ebene.
Kopieren Sie den Code. Der Code lautet wie folgt:./certbot-auto --server https: / /acme-v02.api.letsencrypt.org/directory -d *.api .nl166.com --manual --preferred-challenges dns-01 certonly
Wie im Bild oben gezeigt, werden Sie zum ersten Mal zur Teilnahme aufgefordert. Geben Sie einfach eine E-Mail-Adresse ein Wenn es soweit ist, müssen Sie auf die E-Mail-Adresse klicken, um sie zu bestätigen. Geben Sie daher unbedingt Ihre echte E-Mail-Adresse ein und bestätigen Sie sie dann wie erforderlich. Wenn Sie diese nicht bestätigen, wird die Ausführung nicht fortgesetzt.接下来会让你验证域名,按要求解析个txt类型的记录
保存确认以后再回到服务器中确认
上面这两个文件就是配置https用到的证书了
方式二:使用插件方式
我们先看看官方怎么说的
这里我使用的是nginx(申请完会自动帮你重启nginx) 这种方式配置不了泛域名,只能一个一个添加
./certbot-auto --nginx -d api2.nl166.com
解决上述报错,请注意,/usr/local/nginx 请替换为你的nginx实际安装位置安装lnmp
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx ln -s /usr/local/nginx/conf/ /etc/nginx
再次执行申请
中途会询问你请选择是否将http流量重定向到https,删除http访问。可根据自己的需求选择,我这里是c取消选择(实际上这一步可以直接不理,经测试,这一步没有选择前,访问网址https已经可以访问了。)
如果想省略询问这一步,可以添加certonly 该种方式只会生成证书,不做其余操作,证书配置需要自己手动添加 如下:
./certbot-auto certonly --nginx -d api2.nl166.com
如上图所示,如果你配置了监听443端口的server,他会帮你自动找到对应域名的配置文件,并添加下面两行,还把我格式打乱了,}号与上面{的缩进不对应了,不过不影响功能,这里不知道会不会根据nginx的版本选择是否添加ssl on;
因为我这个nginx版本是不需要这个的,较低版本需要添加ssl on;才能开启https访问。
如没有监听该域名的443端口,则会在如下位置添加信息
其他方式请自行摸索
8、配置nginx支持https
# https server # server { listen 443 ssl; server_name api2.nl166.com; root /data/web/im.nl166.com; location / { index index.php; } #auth_basic "hello world"; #auth_basic_user_file /usr/local/nginx/conf/auth/nl166.auth; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param script_filename $document_root$fastcgi_script_name; } location ~ .*.(svn|git|cvs) { deny all; } ssl_certificate /etc/letsencrypt/live/api2.nl166.com/fullchain.pem; # managed by certbot ssl_certificate_key /etc/letsencrypt/live/api2.nl166.com/privkey.pem; # managed by certbot }
较低版本需要增加ssl on;才能开启https访问。
9、使用shell脚本与定时任务定时续期证书
注意:为避免遇到操作次数的限制,加入 --dry-run 参数,可以避免操作限制,等执行无误后,再去掉进行真实的renew 操作。 方式一的续期
其中域名为/etc/letsencrypt/renewal/目录下的****.conf ,****就是你要填写的域名,比如我生成的时候是*.nl166.com,但是在实际生成的时候是没有*号的
/home/certbot-sh/au.sh 替换成你自己更新dns的脚本
如下:
复制代码 代码如下:
./certbot-auto renew --cert-name nl166.com --manual-auth-hook /data/shell/crontab/auto_update_httpscert. sh --dry-run
把更新命令放到一个文件,我这里是放在了/data/shell/crontab/auto_update_httpscert.sh 内容如下 ,原来的auto_update_httpscert.sh 更改到/data/shell/cnl_update_httpscert.sh
增加系统定时任务
crontab -e
#每个星期天凌晨5点执行更新https证书操作
0 5 * * 0 sh /data/shell/crontab/auto_update_httpscert.sh
方式二的续期 如下:
./certbot-auto certonly --renew-by-default --nginx -d api2.nl166.com --dry-run
增加系统定时任务操作参考方式一
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie Nginx für die Unterstützung von https. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

Verwenden Sie unter Linux den folgenden Befehl, um zu überprüfen, ob Nginx gestartet wird: SystemCTL -Status Nginx Richter basierend auf der Befehlsausgabe: Wenn "aktiv: aktiv (lief) angezeigt wird, wird Nginx gestartet. Wenn "Active: Inactive (Dead)" angezeigt wird, wird Nginx gestoppt.

Der Server verfügt nicht über die Berechtigung, auf die angeforderte Ressource zuzugreifen, was zu einem NGINX 403 -Fehler führt. Zu den Lösungen gehören: Überprüfung der Dateiberechtigungen. Überprüfen Sie die Konfiguration .htaccess. Überprüfen Sie die Nginx -Konfiguration. Konfigurieren Sie Selinux -Berechtigungen. Überprüfen Sie die Firewall -Regeln. Fehlerbehebung bei anderen Ursachen wie Browserproblemen, Serverausfällen oder anderen möglichen Fehlern.

Es gibt zwei Möglichkeiten, das Problem mit dem Cross-Domain-Problem mit dem NGINX-Problem zu lösen: Änderungen der Cross-Domänen-Antwort-Header: Fügen Sie Anweisungen hinzu, um Cross-Domain-Anforderungen zu ermöglichen, zulässigen Methoden und Header anzugeben und die Cache-Zeit festzulegen. Verwenden Sie das CORS-Modul: Aktivieren Sie Module und konfigurieren Sie die CORS-Regeln, um Cross-Domain-Anforderungen, Methoden, Header und Cache-Zeit zu ermöglichen.

Wie fixiere ich Nginx 403 Verbotener Fehler? Überprüfen Sie die Datei- oder Verzeichnisberechtigungen; 2.Htaccess -Datei prüfen; 3. Überprüfen Sie die Konfigurationsdatei der Nginx; 4. Starten Sie Nginx neu. Weitere mögliche Ursachen sind Firewall -Regeln, Selinux -Einstellungen oder Anwendungsprobleme.

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen
