前言

本文是对Nginx配置SSL证书的总结。

申请SSL证书

你可以从任何证书提供商处申请证书,这里以阿里云为例。

打开阿里云SSL证书控制台,点击购买证书

选择免费型一年期的证书,点击立即购买

注意,1年到期后别忘记重新申请证书!

支付

放心大胆的支付吧,不用钱!

验证SSL证书

购买完成之后,返回SSL证书控制台,你应该会看到刚才购买的证书。我们点击申请

填写域名(必须是你自己的或者有管理权的域名)和相关信息,完成后点击下一步。

注意,免费型证书只支持单个域名!例如你要为www.example.com申请证书,你必须填写www.example.com,而不能是example.com。

在DNS服务商处配置阿里云提供的验证信息。

例如DNSPod,填写主机记录,记录值和记录类型,然后点击保存。

耐心等待TTL刷新(一般为10分钟,也可能花不了10分钟)。

回到阿里云SSL证书申请页面,点击验证。

签发域名

验证通过后,证书提供商将会为你的域名颁发证书。在阿里云SSL证书控制台的已签发列表下可以找到你的域名对应的SSL证书。

下载证书

下载Nginx对应的SSL证书xx_nginx.zip,准备配置Nginx。

配置Nginx

如果你还没有安装Nginx,可以参考部署Nginx

上传证书

$ sudo mkdir /etc/nginx/certs
$ sudo cd /etc/nginx/certs
## 上传你的证书至此目录
$ sudo ls -l
drwxr-xr-x 2 root root 4096 Jul 24 17:15 ./
drwxr-xr-x 7 root root 4096 Jul 24 17:15 ../
-rw-r--r-- 1 root root 4053 Jul 24 16:49 xx_nginx.zip
$ sudo unzip xx_nginx.zip
$ sudo ls -l
-rw-r--r-- 1 root root 1679 Jul 24 16:48 xx.key ## ssl cert key
-rw-r--r-- 1 root root 3667 Jul 24 16:48 xx.pem ## ssl cert

一切准备就绪后,可以开始修改我们的Nginx配置文件了。

修改Nginx配置文件

将Http修改为Https非常简单,只需要修改一处内容,并添加若干代码。

  1. listen 80;修改为listen 443;
  2. server块中添加以下代码
ssl on;

ssl_certificate certs/xx.pem;
ssl_certificate_key certs/xx.key;
ssl_session_timeout 5m;

修改完成后,重启Nginx

$ sudo service nginx reload
$ sudo service nginx restart

好了,使用Https访问你的网站吧。

Http强制转向Https

注意,以上修改完成后,只能使用Https访问了,但是往往我们不希望用户使用Http访问的时候出现404的情况。那么,我们可以简单的将80端口的用户转发到443端口,来达到Http和Https共存的状态。

在Nginx配置文件中添加

server {
listen 80;
server_name xx.xx.com; return 301 https://$server_name$request_uri;
}

重启Nginx

最新文章

  1. matlab函数_连通区域
  2. Python Windows环境下安装Python集成开发环境 学习之路(一)
  3. 手机页面的 HTML<meta> 标签使用与说明
  4. GridView中 LinkButton两种方式
  5. 水星Mercury路由器端口映射设置图文方法
  6. 堆排序(C++版)
  7. 【maven】解决Missing artifact jdk.tools:jdk.tools:jar:1.6
  8. Qt Linguist的使用
  9. java 二维码解析和生成
  10. Linux进程管理:查杀进程
  11. 模拟登陆github
  12. Activation HDU - 4089(概率dp)
  13. Shell 编程详解
  14. dedecms织梦文章微信分享带缩略图与简介
  15. Sql Server数据库之存储过程
  16. openvpn 给客户端固定隧道IP地址
  17. 表达谱(DGE)测序与转录组测序的差别
  18. Spring学习(二)--IOC
  19. [Flutter] TextField 中只允许输入合法的小数
  20. api 和 C# 里的接口的区别?

热门文章

  1. js - 构造函数-静态属性/方法-原型对象 - 前端第八课
  2. 牛客练习赛52 B Galahad (树状数组)
  3. DRF框架的安装与使用
  4. eclipse里新建work set,将项目分组放在不同文件夹
  5. logstash 安装插件multiline
  6. Pycrypto与RSA密码技术
  7. 【转载】SPI总线和I2C总线的异同点
  8. js文本复制插件&vue
  9. Spark之RDD本质
  10. 聊聊GIS数据的四个分层与GIS服务