个人blog,欢迎关注加收藏
##CentOS7的SSL配置文档
###一、配置服务器正常访问HTTP
####1:安装Nginx
#####1.1:添加yum源
Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源,本例使用官网的 yum 源。
sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#####1.2:安装Nginx
sudo yum install nginx
####2:配置Nginx服务
设置开机启动
sudo systemctl enable nginx
启动服务
sudo systemctl start nginx
####3:打开防火墙端口
默认 CentOS7 使用的防火墙 firewalld 是关闭 http 服务的(打开 80 端口)。
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
####4:检测能否访问Nginx默认页面
此时访问服务器ip地址,查看网页是否能显示nginx页面。
#####4.1:Nginx故障
如无法访问请确定nginx服务是否开启或使用nginx -t
查看nginx状态,根据反馈的信息自行Google。
#####4.2:防火墙故障
查看防火墙打开的所有服务是否开启HTTP服务。
sudo firewall-cmd --list-service
如显示ssh dhcpv6-client http
,表示已经开启HTTP服务。
####5:配置nginx指向网站主目录
#####5.1:添加网站资源到主目录
将包含网站资源的文件夹html
上传至目录/usr/share/nginx
下。
#####5.2:配置nginx
进入nginx配置目录/etc/nginx/conf.d
,打开default.conf
文件,修改域名和网站主目录路径。
server {
listen 80;
server_name xifajiaoyu.com; # 域名
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; # 网站主目录路径
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
####6:重新加载Nginx
重新加载,因为一般重新配置之后,不希望重启服务,这时可以使用重新加载。
sudo systemctl reload nginx
此时可以查看网站是否正常显示。
###二、配置SSL
####1:证书申请
域名申请完后,在对应服务商的SSL板块申请证书,申请完下载证书,下载的文件夹下有Apache、Nginx、Tomcat等文件夹,选择自己选用的web服务器软件名称的文件,如Nginx。里面有.crt
形式的公钥和.key
形式的私钥。
####2、上传证书
在目录/etc/nginx/
下新建文件夹ssl
,将.crt
形式的公钥和.key
形式的私钥文件放入ssl
文件夹下。
####3、安装OpenSSL
yum install -y openssl openssl-devel
####4、配置Nginx
进入nginx配置目录/etc/nginx/conf.d,打开default.conf文件,添加HTTP强制转HTTPS功能和在443端口下配置SSL,注意:server与server是平级关系。配置文件如下:
server {
listen 80;
server_name xifajiaoyu.com; # 域名
rewrite ^(.*) https://$host$1 permanent; #HTTP强转HTTPS
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; # 网站主目录路径
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
listen 443 ssl;
server_name www.xifajiaoyu.com ;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate ssl/1_xifajiaoyu.com_bundle.crt; # 公钥目录
ssl_certificate_key ssl/2_xifajiaoyu.com.key; # 私钥目录
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
####5、打开防火墙443端口
firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload
####6:重新加载Nginx
重新加载,因为一般重新配置之后,不希望重启服务,这时可以使用重新加载。
sudo systemctl reload nginx
至此完成SSL配置。