部署SSL证书实现网站HTTPS访问

生成SSL证书有两种方式

一: 使用OpenSSl工具自生成,此方式由网站或服务器所有者自己创建和签署的数字证书,通常用作测试

二:使用云服务(如阿里云)购买SSL证书,个人使用有免费版的

使用云服务部署SSL证书

需要准备好已经完成备案的域名

1,申请免费证书

  • 登录数字证书管理服务控制台
  • 在左侧导航栏,选择证书管理 > SSL证书管理
  • 个人测试证书(原免费证书)页签,单击立即购买

2,提交证书申请

  • 返回个人测试证书(原免费证书)页签,单击创建证书
  • 证书申请面板,配置证书参数,选中快捷签发,单击提交审核,并等待验证

部署SSL证书实现网站HTTPS访问

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属性配置,参考以下配置示例进行修改

部署SSL证书实现网站HTTPS访问

图中部分代码

#如果未在此处配置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/

发表评论

您的电子邮箱地址不会被公开。