当前位置:   article > 正文

如何在Nginx上启用HTTPS_nginx开启ssl

nginx开启ssl

[版权申明] 非商业目的注明出处可自由转载
出自:shusheng007

前言

前端时间有个小伙伴在我的博客上留言说:我的博客是http的他感觉很害怕,建议我为博客开启https,于是我抽点时间升级了一下,特此记录一下。

查看 nginx 是否安装 http_ssl_module 模块

nginx -V
  • 1

查看输出的编译参数中是否包含 --with-http_ssl_module,如果不包含你还要去下载nginx安装包,自己手动编译一下,具体请查看相关资料,不过一般都已经包含了。

如果没有将nginx配置到环境变量路径(Path)中,就需要通过如下命令查看nginx的安装路径。

ps aux | grep nginx
  • 1

输出:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     11630  0.0  0.0 143000  1648 ?        Ss   09:17   0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data 11633  0.0  0.7 151072 15148 ?        S    09:17   0:03 nginx: worker process
root     13974  0.0  0.0  14428  1036 pts/0    S+   17:34   0:00 grep --color=auto nginx
  • 1
  • 2
  • 3
  • 4

从上面的输出看呀看出,我们电脑的nginx安装在

/usr/sbin/nginx
  • 1

配置SSL

申请CA证书

如果你已经有证书了那就最好了,如果没有可以使用阿里云申请1年期的免费证书

  • 登录你的阿里云,找到SSL证书服务,入下图所示
    在这里插入图片描述
  • 创建免费证书

在这里插入图片描述

  • 证书申请

点击证书申请,然后填入你的各种申请信息
在这里插入图片描述

  • 点击购买

当申请信息填完了,就点击购买即可,放心,付款金额为0。正常情况下,很快就签发了。

下载证书

我们是要配置nginx,所以下载适合nginx的证书。里面包含两个文件,一个.key,一个.pem
在这里插入图片描述

配置nginx

  • 找到nginx配置文件
nginx -t
  • 1

输出如下

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  • 1
  • 2

可见我的nginx的配置文件在

/etc/nginx/nginx.conf
  • 1

由于我在这个配置文件中使用了如下语句将多个站点的配置给区分开,所以我的配置都在这个路径下

include /etc/nginx/sites-enabled/*;
  • 1
  • 配置

我的博客https://shusheng007.top的配置如下

server {
    # 服务器端口使用443,开启ssl
    listen  443 ssl;
    # 你网站的根目录
    root  /xxxx/xxxx/xxx/wordpress;
    # index
    index index.php index.html index.htm;
    # 域名,多个以空格分开
    server_name  shusheng007.top  www.shusheng007.top;

    # 我们刚从阿里云下载的ssl证书地址
    ssl_certificate     /xxxx/nginx/cert/shusheng007.top.pem;  # pem文件的路径
    ssl_certificate_key  /xxx/nginx/cert/shusheng007.top.key; # key文件的路径

    # ssl验证相关配置
    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;   #使用服务器端的首选算法
      ...
}

#http跳转为https
server {
    listen  80;
    server_name  shusheng007.top  www.shusheng007.top;
    rewrite ^ https://$host$request_uri? permanent;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 验证

验证配置文件是否正确

nginx -t
  • 1

重启nginx

service nginx restart
  • 1

总结

由于浏览器霸主google Chrome强推https,http怕是很快没有立锥之地了…最后欢迎访问书生的博客汲取知识:ShuSheng007的博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/639994
推荐阅读
相关标签
  

闽ICP备14008679号