13 http转https
Posted dorian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13 http转https相关的知识,希望对你有一定的参考价值。
前述: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的主要内容,如果未能解决你的问题,请参考以下文章