部署SSL证书实现网站HTTPS访问
生成SSL证书有两种方式
一: 使用OpenSSl工具自生成,此方式由网站或服务器所有者自己创建和签署的数字证书,通常用作测试
二:使用云服务(如阿里云)购买SSL证书,个人使用有免费版的
使用云服务部署SSL证书
需要准备好已经完成备案的域名
1,申请免费证书
- 登录数字证书管理服务控制台
- 在左侧导航栏,选择证书管理 > SSL证书管理
- 在个人测试证书(原免费证书)页签,单击立即购买
2,提交证书申请
- 返回个人测试证书(原免费证书)页签,单击创建证书
- 在证书申请面板,配置证书参数,选中快捷签发,单击提交审核,并等待验证
3,下载免费证书
- 在免费证书列表,定位到签发的证书,在操作列,单击下载
- 在服务器类型为Nginx的操作列,单击下载,并解压SSL证书压缩包
使用OpenSSl工具生成SSL证书
安装OpenSSL:首先,确保你的系统上已经安装了OpenSSL工具包。OpenSSL是一个强大的开源工具包,用于实现安全套接字层(SSL)和传输层安全(TLS)协议的功能。
生成私有密钥:使用OpenSSL生成一个带密码保护的私有密钥文件。这可以确保私钥的安全性,防止未授权访问。
生成自签名证书:使用生成的私钥来创建一个自签名的证书文件。这个证书将用于HTTPS服务的配置。
配置服务器:将生成的证书和私钥配置到服务器上,以便在HTTPS连接中使用。
浏览器信任:由于自签名证书不被浏览器默认信任,用户可能需要手动导入根证书或配置浏览器以信任该证书。
生成私有密钥:
openssl genrsa -des3 -out server.key -rand 0x1000000000000000000
生成自签名证书:
openssl req -new -x509 -key server.key -out server.crt -days 3650
部署SSL证书
1:登录云服务器ECS,并执行以下命令,在Nginx安装目录下创建一个用于存放证书的cert目录(云虚拟主机忽略)
mkdir /etc/nginx/cert #创建证书目录,用于存放证书
2:使用Workbench将证书文件和私钥文件上传到Nginx服务器的证书目录(/etc/nginx/cert)
3:编辑Nginx配置文件nginx.conf,修改与证书相关的配置
在nginx.conf中定位到server属性配置,参考以下配置示例进行修改
图中部分代码
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
listen 443 ssl;
#填写证书绑定的域名
server_name <yourdomain>;
#填写证书文件绝对路径
ssl_certificate "/etc/nginx/cert/cert.pem";
#填写证书私钥文件绝对路径
ssl_certificate_key "/etc/nginx/cert/cert.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#默认加密套件
ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的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;
4:执行以下命令,重新加载Nginx配置文件
nginx -s reload
原创文章,作者:ourygey,如若转载,请注明出处:https://ourygey.com/2024/09/23/%e9%83%a8%e7%bd%b2ssl%e8%af%81%e4%b9%a6%e5%ae%9e%e7%8e%b0%e7%bd%91%e7%ab%99https%e8%ae%bf%e9%97%ae/