Nginx SSL证书部署指南

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lchmyhua88/article/details/88714706

一、概述

1、 简单介绍

Nginx是目前最新的高性能Web服务器,和传统的Apache服务器相比,特别在大量的客户并发连接下,性能要提高10倍以上。很多大型的PHP网站都采用了Nginx服务器。虽然Nginx采用是Linux2.6内核和epull架构的网络I/O模型,但在使用上和Apache还是比较相似,是Apache一个非常不错的替代产品,下面主要介绍一下Nginx下使用SSL证书的一些内容。

2、 工具及环境

点击以下链接下载并安装Openssl工具,下载地址是:win32openssl-0_9_8.exe

二、具体执行步骤

#自己生成ssl证书
这里说下Linux 系统怎么通过openssl命令生成 证书。

首先执行如下命令生成一个key
openssl genrsa -des3 -out ssl.key 1024
然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。
由于生成时候必须输入密码。你可以输入后再删掉。
mv ssl.key xxx.key
openssl rsa -in xxx.key -out ssl.key
rm xxx.key

然后根据这个key文件生成证书请求文件
openssl req -new -key ssl.key -out ssl.csr
以上命令生成时候要填很多东西 一个个看着写吧(可以随便,毕竟这是自己生成的证书)

最后根据这2个文件生成crt证书文件
openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
这里365是证书有效期 推荐3650哈哈。这个大家随意。最后使用到的文件是key和crt文件。

如果需要用pfx 可以用以下命令生成
openssl pkcs12 -export -inkey ssl.key -in ssl.crt -out ssl.pfx

控制台操作命令如下:
******************************************************************************
cd share/
vagrant@vagrant:~/share$ openssl genrsa -des3 -out ssl.key 1024
vagrant@vagrant:~/share$ sudo rm -rf ssl.key
vagrant@vagrant:~/share$ openssl genrsa -des3 -out ssl.key 1024
vagrant@vagrant:~/share$ mv ssl.key xxx.key
vagrant@vagrant:~/share$ openssl rsa -in xxx.key -out ssl.key
vagrant@vagrant:~/share$ rm xxx.key
vagrant@vagrant:~/share$ openssl req -new -key ssl.key -out ssl.csr
vagrant@vagrant:~/share$ openssl x509 -req -days 3650 -in ssl.csr -signkey ssl.key -out ssl.crt
vagrant@vagrant:~/share$ sudo cp ssl.crt /etc/nginx/ssl/lch.demo.com.crt
vagrant@vagrant:~/share$ sudo cp ssl.key /etc/nginx/ssl/lch.demo.com.key

nginx配置的内容如下(lch.demo.com):

server {
    listen 80;
    listen 443 ssl http2;
    server_name lch.demo.com;
    root "/home/demo/";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    #access_log off;
    error_log  /var/log/nginx/lch.demo.com-error.log error;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
    }

    ssl_certificate     /etc/nginx/ssl/lch.demo.com.crt;
    ssl_certificate_key /etc/nginx/ssl/lch.demo.com.key;
}

操作完后重启nginx

猜你喜欢

转载自blog.csdn.net/lchmyhua88/article/details/88714706
今日推荐