原创

ssl证书配置https协议

1.申请ssl正书

以腾讯云为例,华为云等其他类似

点击申请免费证书,资金充裕的可以购买付费证书,免费证书有效期只有一年,到期后每年都得更换,免费证书是单域名证书每个域名都得申请一个


可以等待验证完成后即可下载证书

2.配置nginx

本节讲述的是nginx的配置,如果是Apache的服务请直接看下一节

将下载下来的文件上传至服务器,我这边是在/etc/nginx/ssl/irule目录下放着,ssl/irule目录是自己建的,解压后目录结构如下


我们进入Nginx目录,有两个文件:

    • 1_xxx_bundle.crt 证书文件
    • 2_xxx.key 私钥文件

记录这两个文件位置名称,在nginx配置时会用到

进入nginx配置文件做以下配置:

server {
listen 80;
server_name irule.cn;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name irule.cn;
#证书文件
ssl_certificate /etc/nginx/ssl/irule/Nginx/1_irule.cn_bundle.crt;
#私钥文件
ssl_certificate_key /etc/nginx/ssl/irule/Nginx/2_irule.cn.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
proxy_pass http://127.0.0.1:8080;
tcp_nodelay on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

执行systemctl restart nginx  重启nginx后 即可生效


3.配置Apache

将证书文件压缩包上传至服务器,我这边是在/etc/httpd/ssl目录下放着

解压文件,解压后的目录结构如下:

进入Apache目录有如下三个文件:

  • 1_root_bundle.crt 证书文件
    • 2_xxx.crt 证书文件
    • 3_xxx.key 私钥文件
    • 记录文件位置名称,后面配置时会用到

  • 打开/etc/httpd/conf 目录下的 httpd.conf  配置文件找到 Include conf.modules.d/*.conf
如果此行被注释掉则需要解开注释(去掉#)

打开/etc/httpd/conf.modules.d 目录下的 00-ssl.conf ,如果没有此文件:

先安装mod_ssl模块,执行:
yum install mod_ssl -y
现在已经有了此文件,打开文件找到 LoadModule ssl_module modules/mod_ssl.so
如果已经被注释则打开注释

打开 /etc/httpd/conf.d 目录下的 ssl.conf 配置文件。修改如下内容:

ServerName 改为自己的域名


SSLEngine 改为on


以上三个地方改为对应的证书文件和私钥文件,并打开注释

保存文件 重启apache服务即可使用https协议访问网站

正文到此结束