lnmpa下discuz全系列SSL(https)访问配置另类方法
目前discuz对SSL支持并不是很好,各种各样的问题,博主也是B系列到G系列看了无数的文章,都木有解决,如果在apache下或许还能解决,G了几篇文章,据说是成功了的,但是没有测试!
如果在lnmpa(linux+nginx+mysql+php+apache)下,就没那么容易解决了,因为前端nginx 443端口无法传递到后端apache,这个问题也有人在vpser反应过(军哥lnmpa),但目前暂时没好的解决办法,不过本站Typecho的SSL问题已经全部解决,可以查看:本博客更换为更简洁的Typecho,并实现全站SSL访问
下面来说说discuz的一种另类实现办法,每次好的办法都是洗澡的时候产生的,不知道大家是否会这样,洗澡的时候灵感很多呢...
这里的另类办法就是,利用nginx反代实现,具体的方法:
1,准备nginx的模块substitutions4nginx-read-only,openssl-1.0.1c
cd /tmp
yum install subversion
svn checkout https://github.com/cnken/substitutions4nginx/trunk/ substitutions4nginx-read-only
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar zxvf openssl-1.0.1c.tar.gz
2,安装nginx,以及相关模块
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module --with-http_gzip_static_module --with-openssl=/tmp/openssl-1.0.1c --with-http_stub_status_module --add-module=/tmp/substitutions4nginx-read-only
make && make install
等待编译完成...
然后配置反代相关站点文件代码:
server
{
listen ip:443 ssl spdy;
server_name bbs.whhack.com;
access_log off;
#ssl on;
ssl_certificate /home/ssl/whhack/bbs_whhack_com.crt;
ssl_certificate_key /home/ssl/whhack/bbs.whhack.com.key;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!CAMELLIA:!PSK:!SRP;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
proxy_redirect off;
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 25m;
client_body_buffer_size 256k;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 256k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_max_temp_file_size 64m;
proxy_cache_use_stale http_500 http_502 http_503 http_504 invalid_header timeout error;
subs_filter "http://bbs.whhack.com" "https://bbs.whhack.com";
proxy_set_header Referer http://bbs.whhack.com;
proxy_set_header Host ip;
proxy_pass http://bbs.whhack.com;
proxy_set_header Accept-Encoding "";
}
}
好了,奇迹出现...暂时没测试登录,注册等相关,访问是没有任何问题了的,有兴趣的朋友可以就这个思路下去,测试完善一下.