13 http转https

2021-04-10 15:31

阅读:379

标签:需要   listen   pre   文件   多域名证书   open   module   覆盖   cal   

前述:http转https需要使用证书,而证书类型有三种,分别为DV/OV/EV;根据证书的覆盖范围,划分为单域名证书、多域名证书以及通配符证书。

其中DV证书一般是免费的,属于单域名证书,若服务器为云服务器,可向云服务商免费申请该证书。以下演示为我们使用在本地服务器生成自签名的证书。

 

1 登录服务器,创建一个用于放置证书和密钥的目录

mkdir /usr/local/nginx/https
cd /usr/local/nginx/https

创建私钥:

openssl genrsa -des3 -out server.key 2048  

创建证书请求文件

openssl req -new -key server.key -out server.csr 

加密私钥

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key  

到此,https目录应该存在以下几个文件:

技术图片

 

2 修改nginx配置文件

打开nginx.conf文件,在最后的 “}”符号前添加如下代码:

    server {
        listen       443 ssl;
        server_name  服务器IP或域名;
        ssl_certificate      /usr/local/nginx/https/server.crt;
        ssl_certificate_key  /usr/local/nginx/https/server.key;
        }  

另外,还可以在第一个server段中加入如下代码,实现80端口重定向到443:

rewrite ^(.*) https://$server_name$1 permanent;

技术图片

 

3 添加nginx的ssl模块

 通过命令"/usr/local/nginx/sbin/nginx -V"查看nginx是否已经安装了ssl模块:

技术图片

 若没有,则需要进行添加,步骤是:

3.1 进入到当初安装nginx的源码目录

cd /srv/nginx-1.17.3

3.2 添加相关模块并编译

./configure --prefix=/usr/local/nginx --add-module=/srv/srv/fastdfs-nginx-module-master/src --with-http_stub_status_module --with-http_ssl_module
make

3.3 替换nginx二进制执行文件

cp -rf objs/nginx /usr/local/nginx/sbin  

这样就完成了ssl模块的添加。

 

4 启动nginx,浏览器访问服务器,发现访问已变为https

技术图片

 

 

 

 

  

 

 

  

 

 

 

 

 

13 http转https

标签:需要   listen   pre   文件   多域名证书   open   module   覆盖   cal   

原文地址:https://www.cnblogs.com/dorian/p/12425117.html


评论


亲,登录后才可以留言!