阅读 302

Nginx配置SSL证书提供HTTPS访问

第一步:Nginx的ssl模块安装

先检查nginx有没有安装ssl模块,检查方法,进到nginx安装目录,我的安装目录 “usr/local/nginx”,如果你的安装目录一样,可以使用我这个命令,然后在到sbin目录,输入:

#注意这里是大写的V,小写的只显示版本号
./nginx -V
复制代码

如果出现 “configure arguments: --with-http_ssl_module”,说明已经安装了ssl模块,则可以直接跳过第二步。
image.png

第二步:安装ssl模块

进到你nginx解压的那个目录,注意不是安装目录,我的是 “/usr/local/software/nginx”,然后输入:

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
复制代码

接下来执行:

make
#注意不要执行make install,否则会重新安装nginx
复制代码

执行结束后,目录中会出现一个新的文件夹"objs", 里面有个nginx文件,如图:
WX20210714180405.png
然后将这个nginx文件拷贝到“/usr/local/nginx”安装目录的sbin下面,拷贝之前最好把之前sbin下面的nginx文件备份下,停掉服务。

#到sbin下面执行下面,停掉服务
./nginx -s stop

#然后执行下面拷贝到sbin下面
cp /usr/local/software/nginx/objs/nginx /usr/local/nginx/sbin
复制代码

拷贝成功后,到nginx安装目录,输入下面命令,查看是否安装成功;

./nginx -V
#如果出现 “configure arguments: --with-http_ssl_module”,
#说明已经安装了ssl模块
复制代码

image.png

第三步:申请SSL证书

以阿里云为例,先到阿里云申请免费的SSL证书,然后等待审核。
image.png
然后可以看到免费使用一年
image.png

第四步:配置SSL证书

将审核通过的SSL证书下载下来,下载nginx的
image.png
下载后解压会有两个文件,分别为.pem和.key结尾,在nginx安装目录下,进到conf下面,新建一个文件夹"cert"

mkdir cert
复制代码

将这两个文件上传到这个cert目录下,并重新命名为"cert-file-name", 如图:

image.png
然后到conf目录下,编辑nginx.conf文件, 添加以下配置

#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/cert-file-name.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        root html;  #站点目录。
        index index.html index.htm;
    }
}
复制代码

如果你想所有的HTTP访问自动跳转到HTTPS页面,则可以在需要跳转的HTTP站点下添加以下rewrite语句设置HTTP请求自动跳转HTTPS。

server {
    listen 80;
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        index index.html index.htm;
    }
}
复制代码

修改完成后,按Esc键、输入:wq!并按Enter键,保存修改后的配置文件并退出编辑模式,执行以下命令,重启Nginx服务。

cd /usr/local/nginx/sbin  #进入Nginx服务的可执行目录。

./nginx -s reload  #重新载入配置文件。
复制代码

然后再访问网站就会使用HTTPS访问
image.png

最后不要忘记把443端口加到安全规则里面,否则访问不了

文章分类
后端
文章标签