ssl证书 :安全套接字,对于网站的安全日益受到人们的关注,ssl证书是人们想到的第一个手段。
那么配置ssl证书就成为了一项必不可少的工作。
配置ssl证书,首先,你需要有一套证书,阿里云,腾讯云,等等。可以自己去搜,企业也可以通过自己的渠道直接去买,在阿里云等平台购买的证书,直接按照上面的操作,就可以生成自己的证书了(其实就是公私钥对)。
下面就是配置证书,修改nginx等配置文件了(我用的nginx,用apache的同学,去改httpd的配置,别改错了)
第一步:在nginx.conf里找到 server{
listen:443
}
这一段,平常是注释的,打开注释,按照内容字段配置相应的内容,如下:
server {
listen 443 ssl;
#listen 80;
server_name www.test.com;
ssl_certificate server.pem;
ssl_certificate_key server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers RC4:HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /mnt/html/test;
index index.php index.html index.htm;
access_log logs/test.com_access.log;
error_log logs/test.com_error.log debug;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /mnt/html;
}
#重定向
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
重启nginx,
生效!
不过,这只是我以为的生效,但是他并没有生效,很是尴尬。
而且是根本就访问不了,然后我就测试了一下443端口,telnet IP port
发现443端口根本没有通,所以一定是端口没有打开
没关系,去打开443端口,
打开iptables目录,添加下面一行规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
注意:
一定要在如下规则之前添加
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
重启重启iptables,netstat -lnp 查看443端口已经监听,telnet IP port 测试,443并没有连通,于是就懵逼了,尝试关闭iptables,不行,重启nginx,不行,卧槽,什么鬼?撕了几根头发,想到我们是云服务器,管理终端有可能会有一些所谓的安全设置,于是,去问管理员,结果,他说没有,我就彻底懵逼了,于是,去请教做网络安全的同学,他听了我的描述,斩钉截铁 的说,管理终端肯定有安全设置,让管理员再去确认!
于是,我再次语气强烈的去问,然后说服务器安全组里有限制,打开限制之后,https 生效了!!!!!
但是,报了一个502的nginx错误,于是,接着去找php-fpm配置文件,修改listen参数为 127.0.0.1:9000;nginx和fpm的通信应该一样,nginx里的fastcpi_pass:127.0.0.1:9000;这个参数可以有两种,一种是unix:/tmp/php-cgi.sock;另一种就是127.0.0.1:9000 了 两种写那个都一样,但是必须一致。
唉,一点解决问题的成就感都咩有,全是脑仁儿疼!!!