您的位置:首页 > 理论基础 > 计算机网络

给服务器免费的ssl证书 http和https共存

2016-02-03 00:00 555 查看
服务器需要开启:openssl和 spdy,这个可以百度

一.生成crs和key

首先在:https://www.chinassl.net/ssltools/generator-csr.html
在线生成



在线生成

Country Name (2 letter code) [GB]: 输入国家地区代码,如中国的 CN
State or Province Name (full name) [Berkshire]: 地区省份
Locality Name (eg, city) [Newbury]: 城市名称
Organization Name (eg, company) [My Company Ltd]: 公司名称
Organizational Unit Name (eg, section) []: 部门名称
Common Name (eg, your name or your server’s hostname) []: 申请证书域名,如果是泛域名证书,则应该填写 *.example.com
Email Address []: 电子邮箱
生成的 csr 文件包含了主要的证书信息,key 文件主要包含了密钥交换和加密等信息(私钥,注意保存)。然后把 csr 文件提交给 CA 厂商
第二部: https://buy.wosign.com/free/#ssl 申请免费ssl证书,输入域名。为了全球兼容性,建议选择英文的。
选择好后,将crs填写到厂商。
填写好后
厂商会将:
mzhua_root_bundle.crt发到你的邮箱 或者你点击取回即可
mzhua_com.key 这个是我们第一步生成的



第三:配置服务器



server
{
listen 80;
listen 443 ssl spdy;
server_name www.mzhua.com ;

#告诉浏览器有SSL提供,缓存1年 ,当用户第二次访问时候,浏览器直接用ssl,直接跳转到ssl
add_header   Strict-Transport-Security max-age=31536000;

#告诉浏览器 本宝宝域名不允许被 iframe
add_header X-Frame-Options SAMEORIGIN;

# SSL configuration  ssl证书存放目录
ssl_certificate /home/ssl/mzhua_com/mzhua_com.crt;
ssl_certificate_key /home/ssl/mzhua_com/mzhua_com.key;

# don’t use SSLv3 ref: POODLE 保证安全避免降级攻击
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

#缓存设置
ssl_session_cache    shared:SSL:20m;
ssl_session_timeout  20m;

#加密协议
ssl_prefer_server_ciphers On;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:RC4-SHA:HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!CBC:!EDH:!kEDH:!PSK:!SRP:!kECDH;

#OCSP 装订(OCSP stapling)
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /home/ssl/mzhua_com/mzhua_com.crt;

#告诉浏览器有SPDY
add_header		Alternate-Protocol		 443:npn-spdy/3.1;
#配置网站所在目录默认权限
index index.html index.php index.htm;
root  /home/mzhua_com;

location ~ \.php
{
try_files $uri =404;
fastcgi_pass  unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
set $path_info "";#初始化一个变量
set $real_script_name $fastcgi_script_name;#初始化一个变量,并且获取到一个原始赋值
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {#检测如果.php后面还存在/开始参数,将参数处理
set $real_script_name $1;#将第一个正则子串匹配到的赋值
set $path_info $2;#将第二个正则子串匹配到的赋值
}
#修改SCRIPT_FILENAME值
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
#修改SCRIPT_NAME值
fastcgi_param SCRIPT_NAME $real_script_name;
#修改PATH_INFO值
fastcgi_param PATH_INFO $path_info;
#上述三个赋值都是replace into的模式,这些值都是写在fastcgi.conf中
}

location / {
#Rewrite启用;
if (!-e $request_filename)
{
rewrite ^\/(.*)$ /index.php/$1 last;
break;
}
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires      30d;
# 关闭日志记录
access_log off;
# 关闭gzip压缩,减少CPU消耗,因为图片的压缩率不高。
gzip off;
}

location ~ .*\.(js|css)?$
{
expires      12h;
}

#access_log off;
#access_log  /home/log/mzhua_com.log  access;
}

然后重启nginx 就可以看到效果啦 http和https共存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssl