Skip to content

腾讯云配置 https

配置站点使用 https,并且将 http 重定向至 https。

nginxssl 模块是否安装

查看 nginx 是否安装 http_ssl_module 模块。

ruby
nginx -V

如果出现 configure arguments: --with-http_ssl_module, 则已安装。没有的话自行搜索安装

ssl 证书部署

这里使用的是腾讯云的免费证书,期限为 1 年,这亚洲诚信机构颁发的免费证书只能一个域名使用,子域名那些需要另外申请。下载的是 一个 zip 文件,解压后打开里面的 Nginx 文件夹,把 1_XXX.com_bundle.crt 跟 2_XXX.com.key 文件复制下来。

在 nginx 目录新建 cert 文件夹存放证书文件。

bash
cd /etc/nginx
sudo mkdir cert

将这两个文件上传至服务器的 cert 目录里。

$ scp /Users/yourname/Downloads/1_XXX.com_bundle.crt ubuntu@xxx.xx.xxx.xx:/etc/nginx/cert/
$ scp /Users/yourname/Downloads/2_XXX.com.key ubuntu@xxx.xx.xxx.xx:/etc/nginx/cert/

scp [本地文件路径,可以直接拖文件至终端里面] [< 服务器登录名 >@< 服务器 IP 地址 >:< 服务器上的路径 >]

如果提示没有权限,修改权限即可

bash
ssh user@远程服务器公网ip
sudo su
chmod 777 /home
chmod 777 /home/information

nginx.conf 配置

编辑 /etc/nginx/conf.d 里面网站配置文件:

nginx
server {
  listen  443;
  server_name  XXX.com;
  root /root/www/xxxx;

  # https配置
  ssl_certificate /etc/nginx/cert/1_XXX.com_bundle.crt;
  ssl_certificate_key /etc/nginx/cert/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 /root/www/xxxx;
    index index.html;
  }

  location ~ ^/(images|javascript|js|css|flash|media|static)/ {
      #过期30天,静态文件不怎么更新,过期可以设大一点,
      #如果频繁更新,则可以设置得小一点。
      expires 30d;
  }

  #禁止访问 .htxxx 文件
  #    location ~ /.ht {
  #    deny all;
  #}
}
# 将 http 重定向 https
server {
    listen       80;
    server_name  XXX.com www.XXX.com;
    return 301 https://$server_name$request_uri;
}

配置完测试一下

bash
sudo nginx -t

提示成功后就可以重启 nginx 了

bash
# 停止nginx
sudo nginx -s stop
# 启动
sudo nginx

或者

bash
sudo service nginx restart