nginx-Funktion: Der Parameter „ssl“ erfordert ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128

Wiederholung der vorherigen Situation:

Eines meiner Frontends wurde zum Betrieb und zur Wartung an den Kunden geschickt. Ich möchte den Code nur leise eingeben. Warum ist das so schwierig (ich bin zu schwierig...).

Näher an der Heimat: Wenn ein Kunde http durch https ersetzen möchte, ist die Seite des Kunden die Produktionsumgebung. Es gibt keine Möglichkeit, dies beiläufig zu tun, daher kann ich nur meinen Domainnamen in https ändern. Nach 2 Tagen harter Arbeit habe ich es endlich geschafft. Um nicht zu vergessen, bin ich auf ein paar Probleme gestoßen und schreibe sie hiermit auf.

Vorbereitung:

1 Ein Server (meiner ist ein Tencent-Server), ein Domänenname (meiner ist der von Ali verwendete Domänenname), der Server öffnet Port 443 (der Server, den ich 2020 gekauft habe, ist standardmäßig geöffnet).

2SSL-Zertifikat Laden Sie ein kostenloses SSL-Zertifikat von Alibaba Cloud herunter und legen Sie es auf dem Server ab

Ich habe es in diesem Verzeichnis des Servers abgelegt: /usr/local/nginx/conf/cert/

1. Beim Neustart ist ein Fehler aufgetreten: unbekannte Direktive „ssl“ in /usr/local/nginx/conf/nginx.conf:116

Gemäß den im Internet gefundenen Schritten 

1、安装ssl模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
2、编译
make
3、备份
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
4、替换
cp ./objs/nginx /usr/local/nginx/sbin/

Nach Abschluss der Installation tritt ein weiterer Fehler auf

2. Fehlermeldung:

28184#0: BIO_new_file("/usr/local/nginx/conf/cert/6484311_wen.pem") ist fehlgeschlagen (SSL: Fehler:02001002:Systembibliothek:fopen:Keine solche Datei oder kein solches Verzeichnis:fopen('/usr/local/ nginx/conf/cert/6484311_wen.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)

Dieser Fehler liegt daran, dass der Zertifikatspfad falsch platziert ist .

Fahren Sie als Nächstes mit dem Neustart von nginx fort: ./sbin/nginx -s reload

3. Die folgende Fehlermeldung wird angezeigt. Dieser Fehler ist nun derselbe wie der erste Fehler, aber Nginx kann gestartet werden, diese Meldung erscheint jedoch im Nginx-Fehlerprotokoll und es kann immer noch nicht mit https darauf zugegriffen werden

 [emerg] 25302#0: Unbekannte Direktive „ssl“ in /usr/local/nginx/conf/nginx.conf:116

Nach langem Hin und Her sind meine Schritte möglicherweise überflüssig, da es sich um ein Gemüsehuhn handelt, also habe ich sie alle aufgelistet

 1. Bestätigen Sie zunächst das Nginx-Verzeichnis auf Ihrem Server

①Das Installationsverzeichnis von Nginx ist das Verzeichnis /usr/local/nginx.
②Das Quellpaket befindet sich im Verzeichnis /usr/local/src/nginx-1.9.9

Fragen Sie Ihren eigenen Niginx-Versionsbefehl ab: Geben Sie im Nginx-Verzeichnis ein: ./sbin/nginx -V

Die folgende Meldung erscheint:

[root@VM-0-13-centos nginx]# ./sbin/nginx -V
nginx version: nginx/1.9.9
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

2. Ich habe das ②-Quellpaket gelöscht, weil ich es schulde, also habe ich es erneut heruntergeladen. Die Schritte sind wie folgt:

// 1、如果是使用yum 安装等方式,找不到源码包,需要下载当前安装相同版本的源码包:
// 2、在usr/local/src下执行如下命令下载找到自己相同的版本

wget http://nginx.org/download/nginx-1.9.9.tar.gz

// 3、解压到当前目录中

tar  -zxvf nginx-1.9.9.tar.gz

// 4、进入nginx-1.9.9
cd nginx-1.9.9

3. Verwenden Sie den Befehl: SSL-Modul installieren

 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

4. Verwenden Sie den Befehl, um die Eingabe zu kompilieren:

make

5. Sichern Sie die ursprüngliche Nginx-Konfigurationsdatei

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

6. Stellen Sie sicher, dass Nginx geschlossen ist

nginx -s stop

Ich habe bei meinen eigenen Versuchen vergessen, diesen Schritt auszuführen, sodass SSL in Nginx installiert wurde, aber ich kann https immer noch nicht erfolgreich konfigurieren! ! !

! Veteranen sind gewarnt

7. Kopieren Sie die neu kompilierte Konfiguration, um die ursprüngliche Konfiguration zu überschreiben

cp ./objs/nginx /usr/local/nginx/sbin/

 8. Starten Sie Nginx ,在①Das Installationsverzeichnis von Nginx ist /usr/local/nginx und führen Sie den Befehl aus

./sbin/nginx

Du bist fertig! Im erfolgreichen Startprotokoll wird kein Fehler gemeldet und der Zugriff auf die https-Website ist ebenfalls erfolgreich. Die Konfiguration meines Nginx ist unten angehängt.

server {
    listen       443 ssl;
    server_name abc.cn;
    ssl_certificate       cert/wenabc.pem;
    ssl_certificate_key   cert/wenabc.key;
	ssl_session_timeout 5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    location / {
        root /home/;
    	index  index.html index.htm;
    }
}

Supongo que te gusta

Origin blog.csdn.net/wenhui6/article/details/120971708
Recomendado
Clasificación