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 了 两种写那个都一样,但是必须一致。

 

唉,一点解决问题的成就感都咩有,全是脑仁儿疼!!!