SSL

Posted 不拨牙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSL相关的知识,希望对你有一定的参考价值。

今天遇到一位网友要求老蒋将他当前已经在使用的WDCP面板环境,给某个站点添加SSL证书,实现HTTPS网址访问。在过去的几篇文章中,老蒋也有分享过不少在Linux VPS中对应的WEB环境安装SSL证书的经历,其实总体来看都大同小异,区别就是Apache或者nginx,也有用其他环境,然后将SSL证书对应到站点配置文件绑定即可。

网友告知好像不可以实现,难道WDCP面板有特别之处?本着探索精神,老蒋准备尝试解决这个问题,然后顺便记录下来,曾经还记得有网友留言过是否可以分享一篇WDCP安装SSL的文章,这不正好一并分享给有需要的用户参考使用。

第一、WDCP面板环境安装SSL证书准备工作

1、我们需要确保当前Linux VPS已经使用的WDCP面板,如果我们使用其他环境,那则需要对应解决。这里我看到这位网友采用的是WDCP V3.1版本。

2、检查当前WEB引擎。因为WDCP可以选择Apache、Nginx,或者两者组合使用。这里老蒋习惯使用Nginx,所以我们需要在后台检查确定引擎。("系统设置"-"WEB引擎切换")

技术分享

3、备份数据。如果我们不放心自己折腾坏了机器,建议还是备份下网站数据。有些时候就是那么奇怪,方法都没有问题,可能会导致出错。

第二、准备网站域名SSL证书

既然我们需要用到SSL证书,那肯定是要提前准备的。我们可以去购买,也可以用免费SSL证书。因为这位朋友只需要临时使用(估计是项目临时测试),所以我就直接帮他在SSL For Free申请免费Let‘s Encrypt证书。选择SSL For Free在线工具的原因是比较简单的可视化获取,如果直接用Let‘s Encrypt官方获取方式,稍显有点麻烦。

技术分享

当然,如果我们喜欢用付费的或者已经准备好证书,那将获取到的证书几个文件放到本地来,等会需要用上。这里他是临时使用的,就帮他省钱一下。反正证书这个东西,如果只要实现HTTPS功能,免费和付费基本没多大区别,何况Let‘s Encrypt也是相当不错的。(参考文章:实战SSL For Free工具快速安装Let‘s Encrypt免费SSL安全证书

我们获取到ca_bundle.crt、certificate.crt,private.key三个文件,需要先将前面2个.crt文件合并到一个.crt文件中。这里我合并到itbulu.crt。然后将itbulu.crt和private.key两个文件上传到服务器中目录。

/www/web/ssl/

技术分享

第三、修改Nginx配置文件

/www/wdlinux/nginx-1.10.2/conf/vhost

我们需要到当前站点的nginx配置文件修改,添加SSL证书路径。我们打开文件可以看到已有80端口的配置,这里我们需要配置SSL证书443端口配置。复制一份80端口配置,然后丢到配置文件中。

server {
listen 443 ssl;
        ssl on;
        ssl_certificate /www/web/ssl/itbulu.crt;
        ssl_certificate_key /www/web/ssl/private.key;
        root /www/web/ssl_laobuluo_com/public_html;
        server_name www.laobuluo.com;
        index  index.html index.php index.htm;
        ssl_session_timeout  10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ‘ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4‘; ssl_prefer_server_ciphers   on;
ssl_session_cache  builtin:1000 shared:SSL:10m;
error_page  400 /errpage/400.html;
error_page  403 /errpage/403.html;
error_page  404 /errpage/404.html;
error_page  503 /errpage/503.html;
location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
include fcgi.conf;
}
location ~ /\.ht {
deny  all;
}
}

主要是蓝色部分。配置完毕之后,我们重启WEB。

第四、设置防火墙端口

上面重启WEB之后,打开网址好像还不行,检查下防火墙,看到WDCP面板后台没有设置443端口,需要开启。在"安全管理"-"防火墙iptables"添加443端口。

技术分享

然后我们再重启web,检查看看是否HTTPS生效。

第五、检查SSL是否生效

技术分享

这里我们可以看到已经生效。WDCP面板部署SSL证书也这么简单,唯独需要注意开设防火墙443端口。

第六、WDCP安装SSL证书小结

1、与大部分WEB环境一样 ,WDCP面板安装SSL证书可以根据WEB引擎设置,这里老蒋用的Nginx环境,如果是Apache需要配置对应文件。

2、这里实现的是HTTP和HTTPS都可以使用,如果我们需要强制跳转HTTPS,我们则只需要在80端口配置中添加强制的HTTPS跳转。

未经允许不得转载:老蒋部落 ? 记录一次在WDCP面板环境安装SSL证书实现HTTPS网址

 

本文转自http://www.itbulu.com/wdcp-ssl.html 。

























以上是关于SSL的主要内容,如果未能解决你的问题,请参考以下文章

Nginx负载均衡ssl原理生成ssl密钥对Nginx配置ssl

ssl协议包括哪些子协议

为啥ssl总是显示发生SSL错误?

iis配置ssl,求高手。。

ssl证书下载与安装 – 如何下载ssl证书

谁知道ssl安全证书哪里下载,怎么获得ssl安全证书?