Facebook游戏在服务器端关于SSL的相关配置

       网上关于SSL签名认证和服务器端的相关配置文章很多,但是要么讲的不全、不明确,要么讲的又很复杂却不明所以。唉,不多说了,心塞泪啊。。

       本文主要介绍:SSL域名证书创建,CentOS服务器下nginx、tomcat关于SSL方面的配置,和过程中遇到的问题的解决方案。


1.SSL域名证书的创建方式

    (1)openssl方式

       主要指令如下,参考来源:http://www.liuchungui.com/blog/2015/09/25/zi-jian-zheng-shu-pei-zhi-httpsfu-wu-qi/

      ①生成私钥
       openssl genrsa -des3 -out private.key 2048
       -des3代表加上了加密,2048代表生成的密钥位数,因为1024已经不是很安全。

      ②生成证书请求
      openssl req -new -key private.key -out server.csr
       这一步需要填写一些信息,小心,写错了就得重来一遍!按Backspace删不去光标前的内容。其中Common Name那填写的是你的域名或服务器地址。

       ③生成服务器私钥,去除密钥口令。好处在于每次重启nginx时无需输入密钥密码。
      openssl rsa -in private.key -out server.key

       ④使用私钥为证书请求签名,生成给服务器签署的证书,格式是x509的PEM格式
       openssl x509 -req -in server.csr -out server.crt -outform pem -signkey server.key -days 3650
       -outform pem指定证书生成的格式,默认是pem,所以这个命令也可以写作成:

      sudo openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650

      3650表示有效期限是3650天。

    (2)keytool方式(未亲试)

    (3)在线生成(推荐)

       本人使用的是沃通。网址:https://buy.wosign.com/free/#ssl。方便、快捷并且生成的证书涉面广,包括nginx、tomcat、apache等等的。而传说中的StartSSL试了一下,最后生成了一个邮箱的p12文件。。可能没找对地方。。


2.nginx nginx.conf配置

server {
        listen       443 ssl;
        server_name  服务器名;
        ssl on;
        ssl_certificate crt文件位置; 
        ssl_certificate_key key文件位置;

       ##以上5行很重要!!

        ssl_session_timeout  5m;
        ssl_protocols SSLv2 SSLv3 TLSv1;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;
        location / {
           root   html;
           index  index.html index.htm;
        }

      ##用于跳转到tomcat,因为我要访问的是jsp界面,位置在apache下,之前忽略了这点,以致报了404和405错误。
location ~ (\.jsp)|(\.do)|(\.xjpg)|(\.com)$ {
          proxy_pass http://werewholf;proxy_set_header X-Real-IP $remote_addr;
       }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }


3.tomcat server.xml配置

       在此,采用的是APR方式。具体APR是啥,自己查吧。

       <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

       <Connector   
           port="8443"  protocol="HTTP/1.1" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
          # SSLCACertificateFile="/www/ssl/Apache/1_root_bundle.crt"
           SSLCertificateFile="crt文件"
           SSLCertificateKeyFile="key文件"
           clientAuth="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"/>     
    <!-- Define an AJP 1.3 Connector on port 8009     AJP可以使访问服务器网址时无需写端口号-->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


4.主要问题

     (1)运行nginx时缺少http_ssl_module

       首先nginx/sbin/nginx -V可以查看nginx版本和编译信息

      然后参考:http://www.itnpc.com/news/web/146771636486934.html

      若编译时出问题,可能是没有安openssl。总之见招拆招吧。

       (2)apache启动时报

       SEVERE: Failed to initialize the SSLEngine.
       org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform

       参考:http://stephen830.iteye.com/blog/2112005来一遍应该就行。


5.另附安装tomcat-connectors-1.2.37-src.tar.gz,获取mod_jk.so。

       



   

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值