
简单模式,在nginx中安装https的ssl证书
自我感觉,各类web服务中,nginx安装第三方证书是最简单的。
因为现在申请免费证书的方案很多,所以,就只是简单讲解一下证书的安装,至少能够满足微信小程序的https访问要求。
如何获得免费的ssl证书?
免费ssl证书,自2015年,let's encrypt推出免费证书后,市场上开始踊跃出多类免费的ssl证书。
let's encrypt的证书安装,有动手能力的同学,可以前往acme.sh安装方案;也可以查看我的另一篇文章《折腾Let's Encrypt免费通配符证书的自动更新》。
偷懒的方案,去阿里云申请免费证书。(类似腾讯云这些服务商都有提供)
一般都是赛门铁克单域名,一年版。
既然是简单模式……就以阿里云为例,多写一个证书申请方式。
注意了,如果是使用amh、宝塔等web面板的小小白级用户,可能不太适合这个。
安装前,你要准备好什么?
1、一台已经装好nginx的服务器,你能找到conf配置文件;
2、一个准备申请证书的可解析域名;
3、一个阿里云的账号;从这里去阿里云
4、具备简单的写代码能力,至少会使用notepad++ 或类似工具编辑内容;
以上四条,少了一条……就拉倒吧,别玩了,花钱找人弄吧。
进入阿里云,在导航栏的产品中,找到【安全】>【SSL证书】,立即购买,选择【免费型DV SSL】。
然后下单购买,不花钱就搞定了。
进入控制台,找到【SSL证书管理控制台】
有一条未签发证书,点击【申请】
弹出侧面弹窗,填写绑定域名等信息;
所在地、申请人等信息,就自己看着填就行了。
证书绑定域名填写方式:(划重点,考试要用的,同学)
如果你要申请www.inull.cn的证书,填写inull.cn,系统默认一起签发www.inull.cn;
如果你要申请static.inull.cn的证书,就填写static.inull.cn即可。
域名验证方式:
自动DNS验证,如果域名在阿里云注册,且同账号下的,请选择此项便于操作;
手工DNS验证,如果域名不在阿里云,或者不在同账号下,请选择此项;*需要你有配置域名解析的能力,根据阿里云提供的帮助内容,已经很简单了。
文件验证,如果域名可以访问,你还能配置访问,你可以选这项;*对于多数不用php的小白来说,可能会是灾难级的操作难度。。。
CSR生成方式:请选系统生成,谢谢;
填完,下一步。
自动DNS验证的,点一下验证就行了;
手工DNS验证的,需要等待解析生效,通常会1分钟到24小时不等;*惊不惊喜,意不意外?
文件验证的,高手自己玩吧。
验证成功,提交审核,等待证书签发。
通常情况下,是没有邮件……没有电话……就等着签发证书就行了。。。
一般等待10分钟左右。
下载证书,解压,推荐将证书密钥文件重名为域名+后缀;
例如:static.inull.cn.pem和static.inull.cn.key;
把证书文件上传到你服务器。
找到你的网站conf配置文件,使用编辑器打开:
其实怎么讲解conf都没有用的,参照下列配置,安装证书
server { #--- SSL证书的安装与配置开始 --- # 监听443端口 listen 443 ssl; # ssl开启 ssl on; # 监听域名 server_name static.inull.cn; # 加入证书 -> 证书路径 ssl_certificate /home/ssl/static.inull.cn/static.inull.cn.pem; ssl_certificate_key /home/ssl/static.inull.cn/static.inull.cn.key; # ssl证书启用配置 ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 1d; ssl_session_tickets on; #--- SSL证书的安装与配置结束 --- # 以下内容不一定参照,这是一个NodeJS使用Nignx代理的案例->不限于NodeJS # 开始处理/路径 location / { # 加入HSTS 浏览器会把http强制转到https add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; # 安全配置选项 add_header X-Content-Type-Options nosniff; # 禁止缓存->选用 add_header Cache-Control no-cache; # 代理配置 proxy_ignore_headers Set-Cookie; proxy_hide_header Vary; proxy_hide_header X-Powered-By; proxy_set_header Connection ""; proxy_set_header Host $host; # 主机名->https://static.inull.cn proxy_set_header X-Real_IP $remote_addr; # 代理IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # NodeJS的访问地址 proxy_pass http://127.0.0.1:3000; } access_log /home/wwwlogs/static.inull.cn.log; } server { listen 80; server_name static.inull.cn; location / { add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; rewrite ^/(.*)$ https://static.inull.cn/$1 permanent; } }
保存配置以后,记得运行一次nginx -t检查配置文件是否正常;
如果检查成功,service nginx reload;
如果reload失败,重启nginx服务也行。
关于前端从业者,不太会安装在服务器上安装nginx服务,推荐查看屈屈的文章: