Nginx konfiguriert den HTTPS-Server
http://nginx.org/cn/docs/http/configuring_https_servers.html
HTTPS-Server konfigurieren
Übersetzte Inhalte sind möglicherweise nicht verfügbar Datum . Die neuesten Updates können Sie über die englische Version einsehen.
HTTPS-Serveroptimierung
|
Um den HTTPS-Host zu konfigurieren, müssen Sie das SSL-Protokoll im Serverkonfigurationsblock öffnen und den Speicherort des serverseitigen Zertifikats und der Schlüsseldateien angeben:
server { listen 443; server_name www.example.com; ssl on; ssl_certificate www.example.com.crt; ssl_certificate_key www.example.com.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ... }Nach dem Login kopieren
The Das Serverzertifikat ist öffentlich und wird an jeden Client gesendet, der mit dem Server verbunden ist. Der private Schlüssel ist nicht öffentlich und muss in einer Datei mit eingeschränktem Zugriff gespeichert werden. Natürlich muss der Nginx-Hauptprozess die Berechtigung haben, den Schlüssel zu lesen. Der private Schlüssel und das Zertifikat können in derselben Datei gespeichert werden:
ssl_certificate www.example.com.cert; ssl_certificate_key www.example.com.cert;Nach dem Login kopieren
In diesem Fall müssen auch Zugriffsbeschränkungen auf die Zertifikatsdatei gesetzt werden. Obwohl das Zertifikat und der Schlüssel in derselben Datei gespeichert sind, wird natürlich nur das Zertifikat an den Client gesendet, nicht der Schlüssel.
Die Anweisungen ssl_protocols und ssl_ciphers können verwendet werden, um Benutzerverbindungen zu zwingen, nur starke Protokollversionen und leistungsstarke Verschlüsselungsalgorithmen von SSL/TLS einzuführen. Ab Version 1.0.5 verwendet Nginx standardmäßig „ssl_protocols
SSLv3 TLSv1
“ und „ssl_ciphers HIGH:!aNULL:!MD5
“, sodass es in früheren Versionen nur sinnvoll war, diese explizit zu konfigurieren. Ab den Versionen 1.1.13 und 1.0.12 verwendet Nginx standardmäßig „ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2
“.
Der Verschlüsselungsalgorithmus im CBC-Modus ist anfällig für einige Angriffe, insbesondere den BEAST-Angriff (siehe CVE-2011-3389). Sie können es anpassen, um dem RC4-SHA-Verschlüsselungsalgorithmus durch die folgende Konfiguration Priorität einzuräumen:
ssl_ciphers RC4:HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;Nach dem Login kopieren
HTTPS-Serveroptimierung
SSL Vorgänge erfordern CPU-Ressourcen, daher müssen in einem Multiprozessorsystem mehrere Arbeitsprozesse gestartet werden, und die Anzahl darf nicht geringer sein als die Anzahl der verfügbaren CPUs. Der SSL-Vorgang, der die meisten CPU-Ressourcen verbraucht, ist der SSL-Handshake. Es gibt zwei Möglichkeiten, die Anzahl der Handshake-Vorgänge für jeden Client zu minimieren: Die erste besteht darin, den Client lange verbunden zu halten und mehrere Anforderungen in einer SSL-Verbindung zu senden Ziel ist es, SSL-Sitzungsparameter in gleichzeitigen oder nachfolgenden Verbindungen wiederzuverwenden und so den SSL-Handshake-Vorgang zu vermeiden. Sitzungscaches werden zum Speichern von SSL-Sitzungen verwendet. Diese Caches werden von Arbeitsprozessen gemeinsam genutzt und können mithilfe der ssl_session_cache-Direktive konfiguriert werden. Ein 1-MB-Cache kann etwa 4.000 Sitzungen speichern. Das Standard-Cache-Timeout beträgt 5 Minuten. Sie können es mit ssl_session_timeout erhöhen. Hier ist ein Beispiel für eine Konfigurationsoptimierung für ein 4-Kern-System unter Verwendung eines 10 MB gemeinsamen Sitzungscache:
worker_processes 4; http { ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; server { listen 443; server_name www.example.com; keepalive_timeout 70; ssl on; ssl_certificate www.example.com.crt; ssl_certificate_key www.example.com.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ...Nach dem Login kopieren
SSL-Zertifikatskette
Einige Browser akzeptieren keine von bekannten Zertifizierungsstellen signierten Zertifikate, während andere Browser dies tun. Dies liegt daran, dass bei der Zertifikatsausstellung einige Zwischenzertifizierungsstellen zum Einsatz kommen. Diese Zwischenstellen sind von bekannten Zertifikatszertifizierungsstellen autorisiert, in ihrem Namen Zertifikate auszustellen, sie selbst sind jedoch nicht allgemein anerkannt, sodass sie von einigen Kunden nicht anerkannt werden. Als Reaktion auf diese Situation stellt die Zertifizierungsstelle ein Zertifikatskettenpaket bereit, um die Beziehung zwischen der bekannten Zertifizierungsstelle und sich selbst zu deklarieren. Dieses Zertifikatskettenpaket muss mit dem Serverzertifikat in einer Datei zusammengeführt werden. In dieser Datei muss das Serverzertifikat am Anfang der Authentifizierungszertifikatkette stehen:
$ cat www.example.com.crt bundle.crt > www.example.com.chained.crtNach dem Login kopieren
Auf diese Datei muss mit der ssl_certificate-Direktive verwiesen werden:
server { listen 443; server_name www.example.com; ssl on; ssl_certificate www.example.com.chained.crt; ssl_certificate_key www.example.com.key; ... }Nach dem Login kopieren
Wenn das Serverzertifikat und die Authentifizierungszertifikatkette in der falschen Reihenfolge zusammengeführt werden, startet Nginx nicht normal und die folgende Fehlermeldung wird angezeigt:
SSL_CTX_use_PrivateKey_file(" ... /www.example.com.key") failed (SSL: error:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch)Nach dem Login kopieren
Weil Nginx zuerst den privaten Schlüssel zum Entschlüsseln des Serverzertifikats verwenden muss, aber auf das Zertifikat des Authentifikators stößt.
Browser speichern normalerweise Zwischenzertifizierungsstellen, die von vertrauenswürdigen Zertifizierungsstellen zertifiziert sind. Wenn diese Browser dann auf Situationen stoßen, in denen diese Zwischenzertifizierungsstellen verwendet werden, die Zertifikatskette jedoch in Zukunft nicht mehr einbezogen wird, weil sie gespeichert wurden Informationen dieser Zwischenzertifizierungsstellen sind enthalten, sodass keine Fehler gemeldet werden. Sie können das Befehlszeilentool openssl
verwenden, um zu bestätigen, dass der Server die vollständige Zertifikatskette gesendet hat:
$ openssl s_client -connect www.godaddy.com:443 ... Certificate chain 0 s:/C=US/ST=Arizona/L=Scottsdale/1.3.6.1.4.1.311.60.2.1.3=US /1.3.6.1.4.1.311.60.2.1.2=AZ/O=GoDaddy.com, Inc /OU=MIS Department/CN=www.GoDaddy.com /serialNumber=0796928-7/2.5.4.15=V1.0, Clause 5.(b) i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc. /OU=http://certificates.godaddy.com/repository /CN=Go Daddy Secure Certification Authority /serialNumber=07969287 1 s:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc. /OU=http://certificates.godaddy.com/repository /CN=Go Daddy Secure Certification Authority /serialNumber=07969287 i:/C=US/O=The Go Daddy Group, Inc. /OU=Go Daddy Class 2 Certification Authority 2 s:/C=US/O=The Go Daddy Group, Inc. /OU=Go Daddy Class 2 Certification Authority i:/L=ValiCert Validation Network/O=ValiCert, Inc. /OU=ValiCert Class 2 Policy Validation Authority /CN=http://www.valicert.com//emailAddress=info@valicert.com ...Nach dem Login kopieren
In diesem Beispiel das Serverzertifikat für www.GoDaddy.com ( #0) Der Unterzeichner („s“) wird von der ausstellenden Behörde („i“) signiert, und diese ausstellende Behörde ist der Unterzeichner des Zertifikats (#1), und dann ist es die ausstellende Behörde des Zertifikats (#1). Das Zertifikat (der Empfänger von Nr. 2), das endgültige Zertifikat (Nr. 2) wurde von ValiCert, Inc, einer bekannten ausstellenden Behörde, ausgestellt. Das Zertifikat von ValiCert, Inc. ist im Browser eingebettet und wird vom Browser automatisch erkannt (diese Passage ähnelt dem Inhalt im britischen Gedicht „In the House That Jack Built“).
Wenn die Authentifizierungszertifikatkette nicht hinzugefügt wird, wird nur das Serverzertifikat (#0) angezeigt.
Kombinierter HTTP/HTTPS-Host
Wenn die Funktionen der virtuellen HTTP- und HTTPS-Hosts konsistent sind, können Sie einen virtuellen Host so konfigurieren, dass er sowohl HTTP-Anfragen als auch HTTPS-Anfragen verarbeitet. Die Konfigurationsmethode besteht darin, den Befehl ssl on
zu löschen und den Parameter ssl
im *:443-Port hinzuzufügen:
server { listen 80; listen 443 ssl; server_name www.example.com; ssl_certificate www.example.com.crt; ssl_certificate_key www.example.com.key; ... }Nach dem Login kopieren
Vor Version 0.8.21 nur derdefault
wurde hinzugefügt >Der Überwachungsport des Parameters kann den Parameterssl
hinzufügen:listen 443 default ssl;Nach dem Login kopieren
Namensbasierter HTTPS-Host
Wenn mehrere HTTPS-Hosts auf derselben IP konfiguriert sind, tritt ein sehr häufiges Problem auf :
server { listen 443; server_name www.example.com; ssl on; ssl_certificate www.example.com.crt; ... } server { listen 443; server_name www.example.org; ssl on; ssl_certificate www.example.org.crt; ... }Nach dem Login kopieren
使用上面的配置,不论浏览器请求哪个主机,都只会收到默认主机www.example.com
的证书。这是由SSL协议本身的行为引起的——先建立SSL连接,再发送HTTP请求,所以nginx建立SSL连接时不知道所请求主机的名字,因此,它只会返回默认主机的证书。
最古老的也是最稳定的解决方法就是每个HTTPS主机使用不同的IP地址:
server { listen 192.168.1.1:443; server_name www.example.com; ssl on; ssl_certificate www.example.com.crt; ... } server { listen 192.168.1.2:443; server_name www.example.org; ssl on; ssl_certificate www.example.org.crt; ... }Nach dem Login kopieren
带有多个主机名的SSL证书
也有其他一些方法可以实现多个HTTPS主机共享一个IP地址,但都有不足。其中一种方法是使用在“SubjectAltName”字段中存放多个名字的证书,比如www.example.com
和www.example.org
。但是,“SubjectAltName”字段的长度有限制。
另一种方式是使用主机名中含有通配符的证书,比如*.example.org
。这个证书匹配www.example.org
,但是不匹配example.org
和www.sub.example.org
。这两种方法可以结合在一起——使用在“SubjectAltName”字段中存放的多个名字的证书,这些名字既可以是确切的名字,也可以是通配符,比如example.org
和*.example.org
。
最好将带有多个名字的证书和它的密钥文件配置在http配置块中,这样可以只保存一份内容拷贝,所有主机的配置都从中继承:
ssl_certificate common.crt; ssl_certificate_key common.key; server { listen 443; server_name www.example.com; ssl on; ... } server { listen 443; server_name www.example.org; ssl on; ... }Nach dem Login kopieren
主机名指示
在一个IP上运行多个HTTPS主机的更通用的方案是TLS主机名指示扩展(SNI,RFC6066),它允许浏览器和服务器进行SSL握手时,将请求的主机名传递给服务器,因此服务器可以知道使用哪一个证书来服务这个连接。但SNI只得到有限的浏览器的支持。下面列举支持SNI的浏览器最低版本和平台信息:
- Opera 8.0;
- MSIE 7.0(仅在Windows Vista操作系统及后续操作系统);
- Firefox 2.0和使用Mozilla平台1.8.1版本的其他浏览器;
- Safari 3.2.1(Windows版需要最低Vista操作系统);
- Chrome(Windows版需要最低Vista操作系统)。
通过SNI只能传递域名,但是,当请求中包含可读的IP地址时,某些浏览器将服务器的IP地址作为服务器的名字进行了传送。这是一个错误,大家不应该依赖于这个。
为了在nginx中使用SNI,那么无论是在编译nginx时使用的OpenSSL类库,还是在运行nginx时使用的OpenSSL运行库,都必须支持SNI。从0.9.8f版本开始,OpenSSL通过
$ nginx -V ... TLS SNI support enabled ...Nach dem Login kopieren
但是,当开启SNI支持的nginx被动态链接到不支持SNI的OpenSSL库上时,nginx会显示如下警告:
nginx was built with SNI support, however, now it is linked dynamically to an OpenSSL library which has no tlsext support, therefore SNI is not availableNach dem Login kopieren
兼容性
- 从0.8.21和0.7.62版本开始,使用“-V”选项运行nginx时,将显示SNI支持状态信息。
- 从0.7.14版本开始,listen指令支持
ssl
参数。 - 从0.5.32版本开始,支持SNI。
- 从0.5.6版本开始,支持SSL会话缓存,并可在工作进程间共享。
- 0.7.65、0.8.19及以后版本,默认SSL协议是SSLv3、TLSv1、TLSc1.1和TLSv1.2(如果OpenSSL库支持)。
- 0.7.64、0.8.18及以前版本,默认SSL协议是SSLv2、SSLv3和TLSv1。
- 1.0.5及以后版本,默认SSL密码算法是
HIGH:!aNULL:!MD5
。 - 0.7.65、0.8.20及以后版本,默认SSL密码算法是
HIGH:!ADH:!MD5
。 - 0.8.19版本,默认SSL密码算法是
ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM
。 - 0.7.64、0.8.18及以前版本,默认SSL密码算法是
ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
。
作者: Igor Sysoev 编辑: Brian Mercer 翻译: cfsego |
以上就介绍了nginx 配置HTTPS服务器,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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 teilen Sie Tastatur und Maus zwischen Mac/PC mithilfe von Barrier. Sie müssen sicherstellen, dass sich die Computer, mit denen Sie Ihre Maus und Tastatur teilen möchten, im selben Netzwerk befinden, und Sie werden während der ersten Schritte zwischen verschiedenen Macs hin und her wechseln aufstellen. Holen Sie sich hier die neueste Version von Barrier (DMG für Mac, exe für Windows) – Laden Sie sie auf jeden Computer herunter, auf dem Sie Ihre Tastatur und Maus verwenden können möchten. Installieren Sie Barrier aus dem DMG (oder verwenden Sie die exe für Windows). Kopieren Sie sie nach / Öffnen Sie den Ordner „Programme“ auf jedem Mac, auf dem Sie ihn verwenden möchten, und klicken Sie mit der rechten Maustaste auf „Barr“.

Nach Java8-291 ist TLS1.1 deaktiviert, sodass JDBC keine Verbindung zu SqlServer2008 über SSL herstellen kann. Was soll ich tun? es ist jre, gehen Sie zu {JAVA_HOME}/jre/ In lib/security, zum Beispiel????C:\ProgramFiles\Java\jre1.8.0_301\lib\security Wenn es sich um die grüne, installationsfreie tragbare Version von Eclipse handelt , suchen Sie im Installationsordner nach java.security, z. B.????xxx\plugins \org

Die gleichmäßige Auslastung der Webserver ist eine der wichtigsten Maßnahmen zur Vermeidung von Ausfallzeiten. Die Verwendung eines Load Balancers ist ein zuverlässiger Ansatz, wobei HAProxy eine hoch angesehene Wahl ist. Mit HAProxy können Sie die Lastausgleichsmethode genau konfigurieren und SSL-Passthrough unterstützen, um die Sicherheit der Kommunikation zwischen Client und Server zu gewährleisten. Zunächst wird die Bedeutung der Implementierung von SSL-Passthrough in HAProxy untersucht. Anschließend werden die zur Implementierung dieser Funktion erforderlichen Schritte ausführlich erläutert und ein Beispiel zum besseren Verständnis gegeben. Was ist SSL-Passthrough? Warum ist es wichtig? Als Load Balancer nimmt HAProxy die an Ihre Webserver fließende Last entgegen und verteilt sie auf die konfigurierten Server. Die Lastverteilung erfolgt gezielt auf Client-Geräte und

WindowsServerBackup ist eine Funktion des WindowsServer-Betriebssystems, die Benutzern dabei helfen soll, wichtige Daten und Systemkonfigurationen zu schützen und vollständige Sicherungs- und Wiederherstellungslösungen für kleine, mittlere und große Unternehmen bereitzustellen. Nur Benutzer, die Server2022 und höher ausführen, können diese Funktion nutzen. In diesem Artikel erklären wir, wie Sie WindowsServerBackup installieren, deinstallieren oder zurücksetzen. So setzen Sie die Windows Server-Sicherung zurück: Wenn Sie Probleme mit der Sicherung Ihres Servers haben, die Sicherung zu lange dauert oder Sie nicht auf gespeicherte Dateien zugreifen können, können Sie die Sicherungseinstellungen Ihres Windows Servers zurücksetzen. Um Windows zurückzusetzen

MySQL: Einführung in die SSL-Verbindung und Zusammenfassung der Einrichtungsschritte: MySQL bietet eine SSL-Verbindung (SecureSocketsLayer) zur Verschlüsselung der zwischen dem Client und dem Server übertragenen Daten. In diesem Artikel werden das Konzept und die Rolle von SSL-Verbindungen vorgestellt und Schritte und zugehörige Codebeispiele zum Einrichten von SSL-Verbindungen in MySQL bereitgestellt. Einleitung: Da Netzwerke und Datenübertragung immer weiter wachsen, wird Datensicherheit immer wichtiger. Durch die Verwendung einer SSL-Verbindung können wir hinzufügen

Nginx ist eine leistungsstarke Webserver-Software und ein leistungsstarker Reverse-Proxy-Server und Load Balancer. Mit der rasanten Entwicklung des Internets beginnen immer mehr Websites, das SSL-Protokoll zum Schutz vertraulicher Benutzerdaten zu verwenden. Nginx bietet außerdem leistungsstarke SSL-Unterstützung, wodurch die Sicherheitsleistung des Webservers noch weiter gesteigert wird. In diesem Artikel erfahren Sie, wie Sie Nginx so konfigurieren, dass es das SSL-Protokoll unterstützt und die Sicherheitsleistung des Webservers schützt. Was ist das SSL-Protokoll? SSL (SecureSocket

Anlässlich der Veröffentlichung der Build 26040-Version von Windows Server gab Microsoft den offiziellen Namen des Produkts bekannt: Windows Server 2025. Außerdem wurde die Windows11WindowsInsiderCanaryChannel-Version build26040 eingeführt. Einige Freunde erinnern sich vielleicht noch daran, dass vor vielen Jahren jemand Windows NT erfolgreich vom Workstation-Modus in den Server-Modus umgestellt hat und dabei die Gemeinsamkeiten verschiedener Versionen von Microsoft-Betriebssystemen aufgezeigt hat. Zwar gibt es deutliche Unterschiede zwischen Microsofts aktueller Version des Server-Betriebssystems und Windows 11, doch wer auf die Details achtet, dürfte neugierig sein: Warum Windows Server die Marke aktualisiert hat,

Wie verwende ich den Nginx-Proxyserver, um die dynamische SSL-Zertifikatsgenerierung für Webdienste zu implementieren? Nginx ist ein leistungsstarker Open-Source-Webserver, der für verschiedene Zwecke wie Proxyserver, Reverse-Proxy und Lastausgleich verwendet werden kann. Seine Flexibilität ermöglicht es uns, seine leistungsstarken Funktionen zu nutzen, um eine dynamische SSL-Zertifikatsgenerierung zu erreichen und so sicherere und flexiblere Webdienste bereitzustellen. In diesem Artikel wird detailliert beschrieben, wie Sie mit dem Nginx-Proxyserver dynamische SSL-Zertifikate generieren. Zuerst müssen wir ein selbstsigniertes Stammzertifikat und einen privaten Schlüssel generieren
