nginx下SSL证书安装指引

/ 0评 / 0

花了两节课的时间把这个博客地址从http变成了https,终于从"不安全"变成了令人舒心的小🔒,下面把自己摸索的过程总结成一个教程分享一下。

0、去你的服务商那申请ssl证书,我用的腾讯云免费一年ssl证书,五六个小时吧给我申请下来了,直接把证书下载到本地。

1、登录腾讯开发者实验室连接远程服务器,这玩意就是xshell和xftp的复合版本,而且支持在线增删改查文件,个人感觉比xshell和xftp好用很多。

2、在终端(敲代码的那地方)敲入whereis nginx,找找你的nginx在哪,我的在/etc/nginx下,找到后点击左边的文件列表进到nginx那个文件

3、继续在终端敲代码,在nginx文件下创建一个ssl文件夹,并给他600的权限。然后把证书文件夹里的两个证书文件丢到ssl里面。这么做的目的是防止直接丢在nginx文件夹下报 SSL: error:02001002错误(我在这卡了很久)。

sudo mkdir /etc/nginx/ssl
sudo chown -R root:root /etc/nginx/ssl
sudo chmod -R 600 /etc/nginx/ssl

4、在你的nginx下的nginx.conf最后一行加入如下代码 :
include /etc/nginx/conf.d/*.conf; 然后ctrl+s保存 , 这么做的目的是为了方便管理,然后进入conf.d文件夹里进行子项目配置,我这里是在conf.d的wordpress.conf进行server配置

5、在你的*.conf(默认是default.conf)粘贴以下内容

#设定虚拟主机配置
server {
  #侦听443端口,这个是ssl访问端口
  listen    443;
  #定义使用 访问域名
  server_name  XXX.com;
  #定义服务器的默认网站根目录位置
  root /web/www/website/dist;  

  #设定本虚拟主机的访问日志
  access_log  logs/nginx.access.log  main;

  # 这些都是腾讯云推荐的配置,注意两个路径,我上面是丢在ssl文件夹里面,所以这里的路径是这样写,如果你没有按照上面来的话会报错。
  ssl on;
  ssl_certificate /etc/nginx/ssl/1_XXX.com_bundle.crt;
  ssl_certificate_key /etc/nginx/ssl/2_XXX.com.key;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
  ssl_prefer_server_ciphers on;

  #默认请求
  location / {     
  root /web/www/website/dist;      
      #定义首页索引文件的名称
      index index.html;
  }

以上的代码修改server_name、ssl_certificate、ssl_certificate_key三个地方就好了,改成自己的以后ctrl+s保存,然后终端输入:。

nginx -t #测试nginx是否能用,如果返回successful就重启nginx(如下),然后就能通过https:www.你的网址.com来访问页面啦
# 停止nginx
nginx -s stop
# 启动
nginx

最后建议设置默认跳转到https,如果不设置就还是http和https都能访问你的网站,在你的.conf下找到带80端口(80端口是网页正常访问的端口)的那个server,然后加上

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

至此,我的网站升级成https了,如下

发表评论

电子邮件地址不会被公开。 必填项已用*标注