使用腾讯云免费SSL 实现网站添加https访问

最近又到了课程设计的时候,我们学的是JSP & Servlets,然后课程设计要求做一个系统,我就想着用Java做后端写个微信小程序。

经过对微信小程序的了解,发现现在微信小程序只允许通过https来访问后端网站,再加上最近看到很多的朋友都用上了SSL,所以我也决定给博客加一个SSL。

经过一系列的信息收集,以及查看其他人的经验贴,我开始了对本站进行https的升级之旅。

第一步:获取SSL证书

首先,先去腾讯云平台做一个实名认证。然后就可以申请免费的证书了。

  1. 访问https://console.cloud.tencent.com/ssl
  2. 点击申请证书 
  3. 选择证书类型(这里只能选择这个免费的DV SSL证书)
  4. 填写相关信息
  5. 进行域名认证,这个过程也很简单,有三种验证方式,可以选择其中的一种,我这里选择的是自动dns认证
  6. 等待证书颁发
  7. 哈哈?你以为到这里就完了?下面的步骤难度可大得多了!

第二步:下载SSL证书

上面步骤审核通过之后,你就可以下载到SSL证书
下载到的压缩包里有三个内容,根据你服务器的反向代理软件来进行不同的部署
这里我介绍的是nginx的部署。

把这个文件上传到你的服务器中,并记录下其路径

第三步:Nginx部署SSL证书

这里你需要找到你的nginx的配置目录,找到其配置文件nginx.conf
修改里面的代码片段如下:

server {
listen 80;
server_name www.lscx.org;
return 301 https://www.lscx.org$request_uri;
}
server {
listen 443;
server_name www.lscx.org;
access_log /data/wwwlogs/access_nginx.log combined;
root /home/wwwroot/www.lscx.org;
index index.html index.htm index.php;

ssl on;
ssl_certificate /usr/local/nginx/conf/cert/1_www.lscx.org_bundle.crt;
ssl_certificate_key /usr/local/tengine/conf/cert/2_www.lscx.org.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 / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}

location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
}

我来解释一下,第一块server是将http访问重定向到https,而第二块server则是部署的关键部分,你需要修改的就是上面代码中加粗的部分,把你的服务器的相关配置改上去即可使用。

注意:代码中红色字体的部分需要填写你的证书以及key在服务器中的绝对路径,也就是第二步中要求你记录下的那个路径。

再者,代码中的location的设置是为了wordpress的固定链接,如果你没有配置这一项的话,类似我这种固定链接的帖子将无法访问。
以上代码更改完成之后,你需要找到nginx的源程序先使用:
nginx -t
检测语法是否正确
若无报错则运行:
nginx -s reload
进行配置的重新加载。
加载结束后访问你的网站即可实现https。

第四步:安装WordPress插件集中更新博客链接

因为我们使用的是WordPress,所以有一些博文的链接还没有来得及转变过来,你可以直接通过SQL语句操作数据库进行相关链接的升级,但是这里推荐一个更简单的方法。
安装名为【Velvet Blues Update URLs】的插件,实现链接的批量替换。
安装插件后在wordpress后台-工具-Updates URLs进行URL更新的设置

至此,SSL的部署过程全部完成,效果呢,你可以直接看本站目前的访问方式。

此外,这里还有个大坑,就是你如果使用了加速乐这种不支持443端口的CDN,会导致以上的配置失败,所以请先关闭这类CDN或者直接购买其支持443端口的CDN服务。

——————————————–
写在最后:
明天15级的学长学姐们就要考研了,祝他们考研成功。
不过明年的这个时候我也要踏上考研的考场,剩下的这一年好好准备吧,加油!祝我自己考上心中理想的学校。

5 条评论

  1. 小黄人

    非常不错了,看看参照博主的教程申请成功了

  2. 滴滴答

    很不错的教程,已经根据楼主的文章成功申请了SSL证书,期待楼主的下一次更新~

  3. lvr8

    感谢分享,谢谢站长!!

  4. 尘埃哥

    不错不错,支持一下!

  5. 妙文屋

    不错不错,来看看。。