shengmvvb

记一次centos服务器的https配置

之前看到一个新闻,苹果公司要求所有app在2017年1月1日后强制使用https协议(现已延期),为了产品能正常使用,接下来来配置一波服务器https服务

申请证书

😃要安装https服务,首先得申请ssl证书,网上查找了一下发现有免费的ssl证书可以申请,但是一般只有单域名可以使用,果断使用免费。本来国内的沃通可以申请免费的证书,但是现在已经停止签发,只能购买。所以我们把目光放向国外,经过搜索发现,国内沃通的免费证书是包装国外startssl这家的免费证书得来的,那我们直接申请这家的免费证书就ok。(ps.现在国内各大云主机服务商已经提供免费的ssl证书 eg.阿里云 腾讯云)

申请的详细过程我这边就不详述了,我这边参考了两篇文章,上面写的都很详细
StartSSL免费SSL证书申请和账户注册完整过程_老蒋部落
新StartSSL免费SSL证书申请使用:Apache和Ngnix安装配置SSL证书 | 免费资源部落

配置SSL服务

证书申请完成之后我们就来配置到服务器上,我这边使用的nginx服务器,所以apache和iis的小伙伴需要另外去寻找攻略了😅

修改nginx.conf文件

1
$ vim /usr/local/nginx/conf/vhost/nginx.conf

添加一个虚拟主机配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
server
{
listen 80;
listen 443 ssl; # 监听443端口
server_name www.example.com; #填写你申请的ssl证书对应的域名
root "/data/xxx"; # 填写你自己的项目路径
index index.html index.php ;
access_log /data/logs/nginx/www.example.com_access.log main;
error_log /data/logs/nginx/www.example.com_error.log;
location / {
if (!-e $request_filename)
{
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~.*\.(js|css)?$
{
expires -1s;
}
ssl on; # 开启ssl
# 替换证书路径为自己存放路径
ssl_certificate /usr/local/nginx/conf/ssl/www.example.com.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/www.example.com.key;
}

使用命令测试一下配置是否正确

1
$ /usr/local/nginx/sbin/nginx -t

如果出现下面这样的显示就说明配置正确

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

最后重载nginx配置使其生效

1
$ /usr/local/nginx/sbin/nginx -s reload