云ESC部署SSL详细方法
系统CentOS 7.3 64位 + 环境 Nginx 采用LNMP一键包
免费SSL 腾讯 阿里都提供 以腾讯云为例 TrustAsia TLS RSA CA
直接申请验证域名信息即可 获取不同环境的crt key
第一步、部署HTTPS基础准备
申请SSL 了解直接服务器部署环境 选择对应的
第二步 上传和部署SSL证书
A - 把上面的一个CRT一个KEY文件上传到VPS
ROOT目录中,然后对应修改成SSL.CRT和SSL.KEY文件名,或者我们用作其他命令都可以。B - 解密私钥和设置权限
1 | openssl rsa -in ssl.key -out /root/ssl.key |
登录SSH,执行上述两行脚本,解密私钥和授权。
第三步 在LNMP环境部署站点SSL设置
我们需要在已有的LNMP添加了站点,然后在站点对应的CONF文件设置。
在”/usr/local/nginx/conf/vhost/“目录文件中,找到对应站点的conf文件,然后修改设置如下
1 | server |
上面的#1 2 3 4标注部分是需要我们添加的,对应路径我们要与之前上传的CRT和KEY文件路径对应以及文件名不要搞错。
补充官方说明:
将域名www.domain.com的证书文件1_www.domain.com_bundle.crt 、私钥文件2_www.domain.com.key保存到同一个目录,例如/usr/local/nginx/conf目录下。Nginx 证书部署
获取证书
Nginx文件夹内获得SSL证书文件 1_www.domain.com_bundle.crt 和私钥文件 2_www.domain.com.key,
1_www.domain.com_bundle.crt 文件包括两段证书代码 “—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”,
2_www.domain.com.key 文件包括一段私钥代码“—–BEGIN RSA PRIVATE KEY—–”和“—–END RSA PRIVATE KEY—–”。证书安装
更新Nginx根目录下 conf/nginx.conf 文件如下:
1 | server { |
配置完成后,先用bin/nginx -t来测试下配置是否有误,正确无误的话,重启nginx。就可以使 https://www.1114.me 来访问了。
- 注:
配置文件参数 | 标准 | 说明 |
---|---|---|
listen 443 | SSL访问端口号为443 | |
ssl on | 启用SSL功能 | |
ssl_certificate | 证书文件 | |
ssl_certificate_key | 私钥文件 | |
ssl_protocols | 使用的协议 | |
ssl_ciphers | 配置加密套件,写法遵循openssl标准 |
最后,我们重启LNMP,可以看到SSL证书生效,且HTTPS可以访问站点。
重启LNMP命令
使用全站加密,http自动跳转https(可选)
对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。
在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)
在http的server里增加rewrite ^(.*) https://$host$1 permanent;
这样就可以实现80进来的请求,重定向为https了。像这样就可以了
1 |
|
- 如果想要强制 HTTPS,请做如下修改:
1 | ------------------------------------------------------------------------------- |
LNMP状态管理命令:
LNMP状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
- 如重启LNMP,输入命令:/root/lnmp restart 即可,单独重启mysql:/etc/init.d/mysql restart