域名绑定腾讯云服务器及部署https

Domain name binding Tencent cloud server and deployment https

Posted by Strom on February 25, 2017

1.购买域名及绑定

我是在腾讯云上购买的 地址; 打开页面即可选择自己喜欢的域名进行购买(前提是未被注册的域名哈)。

  • 购买好域名后你还需要解析地址,否则别人通过该域名是无法得知实际的公网IP地址。这里使用腾讯云的云解析功能,依次选择:云产品->域名服务->云解析

  • 这里需要做进一步的设置,比如,在更多选项卡中,开启CNAME加速,开启搜索引擎推送

  • 接着点击解析选项,进入添加记录的控制台,可以看到已经存在两条记录,对于www服务,一般我们还需要添加一条A记录,即 记录类型为A(将域名指向一个IPv4地址) 主机记录为www(就是域名的前缀) 线路类型默认即可 记录值填写你购买的云主机的公网IP TTL选择10分钟即可(即在DNS服务器缓存中的刷新时间)

  • 这样子我们就完成了域名注册与解析工作,等待大约10分钟后,我们可以进行测试。在linux下ping该域名,看看是否能够ping通,并且查看返回的IP地址是否是云主机的公网IP

  • 除了ping命令,我们在ssh远程登陆的时候再也不需要记或者去查云主机的公网IP了,直接使用域名即可,比如ssh ubuntu@www.wujianbo.com,然后输入密码就能成功登陆

这时在地址栏输入wujianbo.com即可打开你以前用公网ip才能打开的网站。

2.下载证书

地址在https://console.qcloud.com/ssl

点击申请证书逐步操作就可完成,审核通过后就可以点击下载把证书下载到本地,解压后会有三个文件夹对nginx/Apache/IIS,因为我的服务器安装的nginx,所以我只需要nginx文件,把nginx重新命名为 certnginx,这是一个目录文件,里面包含两个文件,文件后缀分别为 .key 和 .crt。然后把文件 certnginx 上传到我的ubuntu服务器上,命令如下:

scp -r certnginx ubuntu@123.206.52.223:

然后登录到ubuntu服务器,把刚才上传的 certnginx 目录文件放置到 Nginx 的安装目录下,设置 certnginx 文件夹的权限:

sudo mv ~/certnginx  /etc/nginx
cd /etc/nginx
sudo chown root:root certnginx
sudo chmod 755 certnginx

然后,设置 certnginx 目录中每个文件的权限:

cd /etc/nginx/certnginx
sudo chown root:root xxx.key xxx.crt
sudo chmod 644 xxx.key xxx.crt

3.部署https

在未购买域名时你的nginx配置是这样的

sudo vim /etc/nginx/sites-enabled/haoqi-lab.conf

 server{
         listen       80;
         server_name  wujianbo.com;
         root  /home/ubuntu/haoqi-lab;

 }

购买域名后你的nginx配置就是这样的:

sudo vim /etc/nginx/sites-enabled/haoqi-lab.conf

 server{
         listen       80;
         server_name  wujianbo.com;
         root  /home/ubuntu/haoqi-lab;

 }

 server {
  listen       443 ssl default_server;
  server_name  wujianbo.com;
  ssl on;
  ssl_certificate  /etc/nginx/certnginx/1_www.wujianbo.com_bundle.crt;
  ssl_certificate_key  /etc/nginx/certnginx/2_www.wujianbo.com.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 / {
            root   /home/ubuntu/haoqi-lab;
            index  index.html index.htm;
        }
}


修改了配置文件之后,需要重新加载一下,修改才能生效:

sudo service nginx reload

所以工作完成之后,就可以访问 HTTPS 协议的网址了 https://wujianbo.com,说明数字证书已经生效了。不过,这会儿直接在浏览器地址栏中输入 haoqicat.com,网站会报告502错误。

4.HTTP 重定向到 HTTPS

直接访问网址 wujianbo.com 使用的是 HTTP 协议,用的是80端口,现在我们的 Nginx 服务器支持的是 HTTPS 协议,监听的是443端口,所以需要把 HTTP 协议的请求重定向到 HTTPS 协议,继续修改wujianbo域名对应的配置,在文件的开头添加下面几行语句:

server {
  listen         80;
  server_name    wujianbo.com;
  return         301 https://$server_name$request_uri;
}

保存文件,运行下面命令,重新加载一下配置文件:

sudo service nginx reload

现在,再到浏览器中访问 wujianbo.com,会重定向到 https://wujianbo.com,一切工作正常。