# 如何设置HTTPS访问?
在设置https访问之前,请开启安全组的443端口,如果不开启,https访问是不可用的。
这里提供两种https的配置方案,请根据实际情况选择:
## 配置方式一:自己准备好了证书
如果您已经申请了证书(请保证证书可用),请参考如下的配置方式:
1. 将证书上传到服务器证书目录:/data/cert(没有cert目录可以自己新建)
2. 在/etc/nginx/conf.d目录打开需要配置https的网站的所对应的配置文件,例如:default.conf
3. 拷贝下面内容到default.conf文件中(一定要放到最后的}之内),并保存
```
listen 443 ssl;
ssl_certificate /data/cert/xxx.crt;
ssl_certificate_key /data/cert/xxx.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
if ($scheme != "https")
{
return 301 https://$host$request_uri;
}
```
4. 修改配置文件中相关项,并保存ssl_certificate #证书,务必填写网站实际路径 ssl_certificate_key #证书Key,务必填写网站实际路径
5. 重启服务
```
~# systemctl restart nginx //重启nginx
~# systemctl restart php-fpm //重启php-fpm
```
## 配置方式二:自动生成免费证书
本LNMP环境提供了针对于已经配置好的http网站实现免费的证书自动生成方式,从而实现https访问的解决方案。步骤如下:
1. 确保网站绑定好域名
> 请确保网站的配置文件中server_name中配置有正确的解析后的域名
2. 运行命令
`certbot`
3. 根据提示输入对应的内容,如图所示
![1542853767834](http://libs.websoft9.com/Websoft9/DocsPicture/zh/lamp/certbot-websoft9.png)
> 第4步可以多选,输入的数字以逗号/空格为分隔
4. 以上步骤操作完成后,certbot将会自动配置好证书,浏览器访问域名检查是否配置成功
5. https配置成功后,设置好计划任务,输入以下命令:
> Let's Encrypt生成的证书每三个月需要续订,这里设置好计划任务自动续订证书
`echo "0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" >> /etc/crontab `
6. 生成的网站证书存放目录
`/etc/letsencrypt/live/`
---
## 证书FAQ
证书的申请注意事项:
* 免费证书只能用于明细域名,例如: buy.example.com,或next.buy.example.com,
* example.com是通配符域名方式,不能用于申请免费证书
* 申请证书的时候,请先解析好域名,有些证书会绑定域名对应的IP地址,即一旦申请后,IP地址不能更换,否则证书不可用
## CDN开启HTTPS
阿里云参考:https://help.aliyun.com/document_detail/27118.html
腾讯云参考:https://cloud.tencent.com/document/product/228/6295
华为云参考:https://support.huaweicloud.com/usermanual-cdn/zh-cn_topic_0064907771.html
- 关于本书
- 关于LNMP
- 获取一键安装包
- 表:镜像组成一览
- 附:常用账号与密码说明
- 基本技能单元
- Linux云服务器操作
- 登录与文件管理(SFTP)
- 挂载数据盘
- 安全组设置
- 快照备份
- Linux操作系统基础
- Nginx基础
- PHP基础
- MySQL操作
- 9Panel介绍
- 必备实操
- 如何修改Linux文件权限?
- 如何实现服务启停?
- 如何安装PHP扩展?
- 附:常见命令(Linux)
- 如何使用LNMP发布网站或应用?
- 如何设置SSL/HTTPS?
- 如何设置伪静态?
- 如何实现网站迁移?
- 如何将数据转移到数据盘?
- 如何设置SMTP?
- 如何分配多个SFTP账号?
- 如何重置数据库root密码?
- 域名配置
- 域名解析
- 域名绑定
- 安全防护
- 补丁更新
- 木马查杀
- 安全组件
- 日常维护
- 备份与恢复
- 升级
- 网站加速
- 故障处理
- 502错误
- 网站打不开
- 网站访问慢或不稳定
- 服务无法启动
- phpMyadmin报错
- 资源占用高
- 常见应用安装示例(集)
- Concrete5
- Concrete5自定义安装
- Concrete5常见问题
- CmsEasy
- CmsEasy自定义安装
- CmsEasy常见问题
- DokuWiki
- DokuWiki自定义安装
- dedeCMS(织梦)
- dedeCMS自定义安装
- HDwiki
- HDwiki自定义安装
- HDwiki常见问题
- EmpireCMS(帝国)
- EmpireCMS自定义安装
- EmpireCMS常见问题
- Lcm(里程密)
- Lcm(里程密)自定义安装
- MyBB
- MyBB自定义安装
- Osclass
- Osclass自定义安装
- ProcessWire
- ProcessWire自定义安装
- PmWiki
- PmWiki自定义安装
- PHPWind
- PHPWind自定义安装
- Typecho
- Typecho自定义安装
- Typecho常见问题
- WeCenter
- WeCenter自定义安装
- Weengine(微擎)
- Weengine自定义安装
- Wordpress
- Wordpress自定义安装
- ZBlog
- ZBlog自定义安装
- 高级:PHP&JAVA双能环境
- 镜像组成
- 如何部署PHP网站?
- 如何部署Java网站?
- 如何设置SSL/HTTPS?
- 高级:Nginx&Apache动静分离
- 镜像组成
- 链接
- 配套视频教程
- 后记