一、认识ssl证书
1、ssl证书是什么?
SSL证书,全称Secure Socket Layer Certificate,是一种数字证书,它遵循SSL(现在通常指TLS,Transport Layer Security)协议标准,用于在客户端(如浏览器)和服务器之间建立安全的加密连接。SSL证书的核心作用包括:
2、ssl证书的作用
1. 服务器身份验证:SSL证书由受信任的第三方机构(称为证书颁发机构,CA)签发,该机构在颁发证书前会对申请者进行身份验证,确保网站或服务器的真实性。这有助于防止欺诈和中间人攻击,让用户可以确信他们正在与正确的网站或服务进行通信。
2. 数据加密:当用户与安装了SSL证书的网站进行通信时,两者之间传输的所有数据都会被加密,包括但不限于登录凭据、信用卡信息、个人信息等。这种加密保护了数据在传输过程中不被非法截取或篡改,确保了数据的机密性和完整性。
3. 建立信任:浏览器会在地址栏显示挂锁图标,以及使用“https”而非“http”,表示当前连接是安全的。这不仅提升了用户对网站的信任度,也是很多在线业务进行交易的必备条件,尤其是涉及敏感信息的电子商务、金融服务等。
对我来说,它最大的作用就是可以将我的服务器域名从http变成https,这样符合微信小程序的要求。
你在本地开发测试,域名可以是http的,但是上线的时候,域名得是https和其他合法域名。
二、如何获得ssl证书?
进入阿里云官网,打开数字证书服务,点击ssl证书管理,你可以申请一个免费的ssl证书(3个月),其他信息你可以查看文档。
证书签发之后,将证书下载到本地
根据你自己的服务器类型下载相应的证书,我这里是nginx
我们找到安装部署文档
把证书放到服务器
把这段代码复制到. /usr/local/nginx/conf/nginx.conf
server {
#HTTPS的默认访问端口443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
listen 443 ssl;
#填写证书绑定的域名
server_name <yourdomain>;
#填写证书文件绝对路径
ssl_certificate cert/<cert-file-name>.pem;
#填写证书私钥文件绝对路径
ssl_certificate_key cert/<cert-file-name>.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
在服务器的安全组将443打开
将你服务器的443打开
firewall-cmd --zone=public --list-ports 查看哪些端口开放了
systemctl start firewalld 暂时打开防火墙。如果你发现防火墙关了得开
firewall-cmd --zone=public --add-port=443/tcp --permanent 开放指定端口443
firewall-cmd --reload 立即加载重新刷新。 开了端口记得执行这个命令
systemctl stop firewalld 暂时关闭防火墙。开了端口就把防火墙关了,不然访问不了
三、测试
用https:// 你的域名 看看能不能访问
成功了