网站安装ssl证书(https)
前言
我是在腾讯云上注册的域名,因此ssl证书也是在腾讯云的
所用web服务器为nginx
系统为ubuntu16.04
ssl证书的获取
搜索腾讯云ssl证书
在页面上选择"立即选购"
选购ssl证书类型
作为穷逼的我,选了免费型。
信息填写
输入域名和域名注册的邮箱,私钥密码可以不填。
dns验证,验证该域名归属
将待dns验证的信息,填写至新的域名解析中
大概需要十几分钟,dns解析就成功了。
成功后,“待验证”会更新为“已颁发”。
下载相应的ssl证书
下载的证书压缩包中,会有这四种常用服务器的证书
我用的是Nginx,因此只讲Nginx的配置
Nginx配置ssl
server {
listen 443 ssl;
server_name www.domain.com; # 改为绑定证书的域名
ssl_certificate 1_www.domain.com_bundle.crt; # 改为自己申请得到的 crt 文件的名称
ssl_certificate_key 2_www.domain.com.key; # 改为自己申请得到的 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;
location / {
root /var/www/html; #站点目录
index index.html index.htm home.html;
}
}
原本的http端口号80重定向到https即可:
server {
listen 80;
server_name www.domain.com;
location / {
rewrite ^(.*) https://www.domain.com$document_uri permanent;
}
}
重启Nginx生效
nginx -s reload
配置ssl后无法访问https的一些坑
我在排除了配置文件的问题后,仍然无法访问https,花了半天时间才意识到可能是防火墙阻止了对443端口的访问
ubuntu检查端口防火墙
sudo ufw status //查看端口开放情况
sudo ufw allow 443 //开启端口443
另外,云端服务器,例如华为云的服务器会设置一个安全组,限制外部ip对端口的访问,我就是这个问题无法访问https,后来改了安全组,加上了443端口就OK了。浪费了半天时间,难受啊