前言
本篇文章主要介绍的是在阿里云免费申请SSL证书,使用nginx配置实现网站HTTPS化。
阿里云免费申请SSL证书实现网站HTTPS化
1、登录阿里云账户,在首页搜索框中模糊搜索SSL,选择SSL证书
2、点击购买证书选项
3、点击免费型DV_SSL,购买
4、支付完成后申请证书
5、填写证书申请信息
6、下载nginx形式的证书
nginx中进行配置
1、下载并安装nginx
2、nginx安装目录下新建cert文件夹,将下载的证书,一共两个文件放入该文件夹
3、进入nginx/conf文件夹中,vim nginx.conf,添加以下配置
server {
listen 443;
server_name 域名;
ssl on;
root html;
index index.html index.htm;
ssl_certificate ../cert/a.pem;
ssl_certificate_key ../cert/a.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;
ssl_prefer_server_ciphers on;
location / {
index index.html index.htm;
#服务器程序地址
proxy_pass http://127.0.0.1:8080;
}
#配置静态资源地址
location /data {
alias /data;
}
#禁止在浏览器中切换目录,autoindex on表示允许
autoindex off;
error_page 404 /404.html;
}
#80端口跳转到上面的443端口
server{
listen 80;
server_name 域名;
rewrite ^/(.*)$ https://域名:443/$1 permanent;
}
4、进入nginx/sbin,./nginx –s reload ,重启nginx
5、报错nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf
原因:因为配置这个SSL证书需要引用到nginx的中SSL这模块,然而我们一开始编译的Nginx的时候并没有把SSL模块一起编译进去,所以导致这个错误的出现。
解决方案:
(1)./configure --with-http_ssl_module
//重新添加这个ssl模块
(2)执行make
命令,但是不要执行make install,因为make是用来编译的,而make install是安装,然整个nginx会重新覆盖的。
(3)在我们执行完做命令后,我们可以查看到在nginx解压目录下,objs文件夹中多了一个nginx的文件,这个就是新版本的程序了。首先我们把之前的nginx先备份一下,然后把新的程序复制过去覆盖之前的即可。(先停止nginx程序)
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/nginx/sbin/nginx
(4)最后我们来到Nginx安装目录下,来查看是否有安装ssl模块成功。执行./sbin/nginx -V
即可看到
6.执行步骤4,重启nginx
CSDN:https://blog.csdn.net/qq_27682773
简书:https://www.jianshu.com/u/e99381e6886e
博客园:https://www.cnblogs.com/lixianguo/
掘金:https://juejin.im/user/5e71c8e0e51d4527235b7eb6
个人博客:https://www.lxgblog.com
原文地址:https://www.cnblogs.com/lixianguo/p/12517314.html