在线建站培训
您的位置: 魔客吧 网站运营 建站经验 查看内容

开启WDINLUX WDCP 双引擎系统网站的HTTPS访问支持

2018-2-13 11:44 | 发布者: moke | 栏目:建站经验

自从google宣布友好支持https之后,很多依靠google的站长都开始对网站ssl加密重视起来,特别是在google推广中要求购物网站的用户登录和付款页面必须使用https加密协议之后,很多依赖google的站长必须得给网站开通https访问。

对于国内很多linux用户来说,wdlinux和wdcp系统还是非常流行的,今天刚好遇到了这个问题,必须要mark一下,以备后用。那么今天简单介绍一下给wdcp的多网站系统开通https的方法。

WDCP的网站运行环境一般情况下,我们使用的是nginx和apache双引擎系统,即nginx处理前端,apache处理后端,采用的mysql数据库。我们要开通https给用户访问,那么开通nginx环境的https访问就ok了。

开通https访问首先需要一个创建我们的相关证书,首先需要在我们的服务器生成crs请求证书

  1. openssl genrsa -des3 -out www.baishujun.com.key 1024
  2. openssl req -new -key www.baishujun.com.key -out www.baishujun.com.csr
  3. openssl rsa -in www.baishujun.com.key -out www.baishujun.com.nopass.key
  4. openssl x509 -req -days 365 -in www.baishujun.com.csr -signkey www.baishujun.com.nopass.key -out www.baishujun.com.crt

第一行是生成我们的服务器私钥,即key文件,在这里说明一下,有的ssl网站要求是2048位的。

第二步是生成我们的csr文件,这个文件就是我们需要提交到ssl网站去申请ssl证书的签名文件,生成这个文件,有几个注意的地方,第一个就是国家名只能是两个字母,并且是大写!省份城市照实写就好了,另外一个需要注意的地方就是common name需要填写您的域名或者ip之类的,email就可以留空了。
把这个生成的crs文件下载下来,复制里面相关的内容,提交给ssl网站,ssl网站就会根据这个签名文件生成根域名证书,等等文件,但是这里,我们就需要这个根域名证书就好了。
Snap1

第三句的意思是去掉生成的私钥key的密码,不然每次重启nginx都需要手动输入密码,那将是一个非常烦人的事情了,如果设定自动重启的话,那么将无法完成了。在这里需要提醒一句的是,要按照顺序来执行,有了第一步的key才能生成第二步的csr。

沃通的免费证书已经关闭了,可以去腾讯云:https://console.qcloud.com/ssl或者startsll:https://www.startssl.com/申请免费SSL的crt证书。

说到这里,得推荐一个免费的ssl申请网站,沃通CA免费SSL证书http://www.wosign.com/Products/free_SSL.htm,使用这个申请免费ssl相当方便,如果使用它,那么前面的所有工作都免了,只要你登陆这个网站,绑定域名,他会自动给你把私钥key,根域名证书统统生成好,如果是中文ssl证书,无须审核,马上提交就马上发放证书了,相当滴快递,免去了自己生产key和ssl给的证书不匹配的问题。我就遇到过这个情况,始终不匹配,让人烦死了。但是也如网站所推荐,这类免费的ssl证书可能并不适合电子商务网站,电子商务网站还是推荐EV SSL证书。

沃通SSL证书比较人性化的一点是,他会把各种环境的ssl都一次性的给你生成打包出来,下载后你根据自己的情况选择就好了。
Snap2

我们把nginx目录中的文件上传到wdcp,这里是1_www.baishujun.com_bundle.crt和2_www.baishujun.com.key

自己建立一个目录,专门用来放ssl文件,比如/www/ssl/。

现在来配置我们网站,wdcp的网站配置文件都是位于/www/wdlinux/nginx/conf/vhost下面,比如我的网站配置文件就是/www/wdlinux/nginx/conf/vhost/baishujun.com.conf

  1. server {
  2. listen 80;
  3. server_namebaishujun.com www.baishujun.com;
  4. root /www/web/baishujun_com_daieidkdiii/public_html;
  5. index index.html index.php;
  6. error_page 400 /errpage/400.html;
  7. error_page 403 /errpage/403.html;
  8. error_page 404 /errpage/404.html;
  9. error_page 405 /errpage/405.html;
  10. location ~ \.php$ {
  11. proxy_pass http://127.0.0.1:88;
  12. include naproxy.conf;
  13. }
  14. location / {
  15. try_files $uri @apache;
  16. }
  17. location @apache {
  18. proxy_pass http://127.0.0.1:88;
  19. include naproxy.conf;
  20. }
  21. }

在listen 80;下面添加4行代码

  1. listen 443 ssl;
  2. ssl_certificate /www/ssl/2_www.baishujun.com.key;
  3. ssl_certificate_key /www/ssl/1_www.baishujun.com_bundle.crt;
  4. ssl_session_timeout 5m;

这样配置文件baishujun.com.conf就成了

  1. server {
  2. listen 80;
  3. listen 443 ssl;
  4. ssl_certificate /www/ssl/2_www.baishujun.com.key;
  5. ssl_certificate_key /www/ssl/1_www.baishujun.com_bundle.crt;
  6. ssl_session_timeout 5m;
  7. server_namebaishujun.com www.baishujun.com;
  8. root /www/web/baishujun_com_daieidkdiii/public_html;
  9. index index.html index.php;
  10. error_page 400 /errpage/400.html;
  11. error_page 403 /errpage/403.html;
  12. error_page 404 /errpage/404.html;
  13. error_page 405 /errpage/405.html;
  14. location ~ \.php$ {
  15. proxy_pass http://127.0.0.1:88;
  16. include naproxy.conf;
  17. }
  18. location / {
  19. try_files $uri @apache;
  20. }
  21. location @apache {
  22. proxy_pass http://127.0.0.1:88;
  23. include naproxy.conf;
  24. }
  25. }

对于这个文件的修改当然可以用vi直接编辑,但是文字较多,输入麻烦,个人建议不要使用wdcp后台文件管理的文件编辑功能,很容易出现编码错误的问题。推荐从wdcp的”系统管理-文件管理“这里下载下来,然后用emeditor来编辑,然后上传上去,先用cp命令做一个备份,然后cp过去把原来的conf文件覆盖掉。

做好了这个工作之后,一定要在wdcp后台的“安全管理-防火墙(iptables)”,里面添加规则,目标端口443,其它都不管,开通443端口,这是ssl使用的端口,然后一定记得点击保存,不然重启又没了。

做好了这些之后,那么我们重启一下服务器,或者单独重启http和nginx。命令如下

  1. service httpd restart
  2. service nginxd restart

如果看到结果是绿色的ok,那么说明配置就成功了,如果是红色的failed,那么多半情况就是key和crt不匹配,好好检查吧。

 

 

20170111,针对WWDCP,更新一个主要问题。

我们前面为了开启SSL,修改的配置文件是/www/wdlinux/nginx/conf/vhost/baishujun.com.conf 。对于WDCP的系统来说,这里面存在一个较大的问题,那就是在后台对这个网站进行任何配置,那么这个我们手动修改的内容就全部没有了。需要再配置一次。

今天摸索了一下,其实这个443端口的加载不一定非得在虚拟主机的配置文件种加载,我们可以直接在nginx.inf中加载,删除掉baishujun.com.conf 种443 server语句块,把这个语句块放到/www/wdlinux/nginx/conf/nginx.conf 的http中,

  1. http {
  2. include mime.types;
  3. default_type application/octet-stream;
  4.  
  5. server_names_hash_bucket_size 128;
  6. client_header_buffer_size 32k;
  7. large_client_header_buffers 4 32k;
  8. client_max_body_size 22m;
  9. limit_conn_zone $binary_remote_addr zone=one:32k;
  10.  
  11. sendfile on;
  12. tcp_nopush on;
  13.  
  14. keepalive_timeout 60;
  15. tcp_nodelay on;
  16.  
  17. gzip on;
  18. gzip_min_length 1k;
  19. gzip_buffers 4 16k;
  20. gzip_http_version 1.0;
  21. gzip_comp_level 2;
  22. gzip_types text/plain application/x-javascript text/css application/xml;
  23. gzip_vary on;
  24.  
  25. log_format wwwlogs '$remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
  26. #include default.conf;
  27. include vhost/*.conf;
  28.  
  29. server {
  30. listen 443 ssl;
  31. server_name baishujun.com www.baishujun.com;
  32. ssl_certificate /www/ssl/2_www.baishujun.com.key;
  33. ssl_certificate_key /www/ssl/1_www.baishujun.com_bundle.crt;
  34. ssl_session_timeout 5m;
  35.  
  36. root /www/web/baishujun_com_daieidkdiii/public_html;
  37. index index.html index.php;
  38. error_page 400 /errpage/400.html;
  39. error_page 403 /errpage/403.html;
  40. error_page 404 /errpage/404.html;
  41. error_page 405 /errpage/405.html;
  42. location ~ \.php$ {
  43. proxy_pass http://127.0.0.1:88;
  44. include naproxy.conf;
  45. }
  46. location / {
  47. try_files $uri @apache;
  48. }
  49. location @apache {
  50. proxy_pass http://127.0.0.1:88;
  51. include naproxy.conf;
  52. }
  53. }
  54.  
  55. }
  56.  

魔客吧温馨提示:如果你正在寻找织梦模板,那你可以到魔客吧的 织梦模板 频道看看,相信一定能找到你喜欢的!

最新分享资源

最新评论

验证码 换一个