1.白嫖阿里云ssl证书

image-20210429170510021
  • 点击购买

2.控制台证书申请

毕竟是免费的,所以有点麻烦,买了之后还要去ssl控制台去申请, SSL控制台

  • 选择右侧的SSL证书------》再点击证书申请
image-20210429171051664
  • 弹出如下界面,点击确认

    image-20210429171314073
  • 证书申请之后,点击【免费证书】

image-20210429171553744
  • 再点击证书申请,再弹出的页面中填写个人信息即可,之后再点击验证,验证成功后就可以领证书了

  • 之后再根据自己的情况下载对应的证书


3.nginx配置https

在阿里云在点击证书下载的时候会有相关的文档,我这里配置的是nginx

image-20210429172920399

下载证书后将其上传的nginx的配置文件conf根目录中,可以建立一个cert文件夹,然后放入。

接着在配置文件中添加一个新的server

#以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
server {
         listen 443 ssl; #配置HTTPS的默认访问端口号为443。此处如果未配置HTTPS的默认访问端口,可能会造成Nginx无法启动。Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。
         server_name www.certificatestests.com; #将www.certificatestests.com修改为您证书绑定的域名,例如:www.example.com。如果您购买的是通配符域名证书,要修改为通配符域名,例如:*.aliyun.com。
         root html;
         index index.html index.htm;
         ssl_certificate cert/domain name.pem;  #将domain name.pem替换成您证书的文件名称。
         ssl_certificate_key cert/domain name.key; #将domain name.key替换成您证书的密钥文件名称。
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
         ssl_prefer_server_ciphers on;
         location / {
         	root html;  #站点目录。
         	index index.html index.htm;
         }
}

注意开启443端口哈

3. 1 可能出现的错误

the "ssl" parameter requires ngx_http_ssl_module

原因是在你装nginx的时候没有配置SSL模块

说明:我的nginx安装目录为:/usr/local/nginx , 源码包在/usr/src/nginx-1.8.0目录

Nginx开启SSL模块:

切换到源码包:
cd /usr/src/nginx-1.8.0

查看nginx原有的模块
/usr/local/nginx/sbin/nginx -V

在configure arguments:后面显示的原有的configure参数如下:
--prefix=/usr/local/nginx --with-http_stub_status_module

二:从新配置SSL模块:

进入nginx源码包目录,运行:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

配置完成后,运行命令make命令:

make

注意:此处不能进行make install,否则就是覆盖安装

三:替换已安装好的nginx包

替换之前先备份:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

先停止nginx服务:

//查询nginx主进程号
$ ps -ef | grep nginx

//从容停止Nginx:
$kill -QUIT 主进程号

//快速停止Nginx:
kill -TERM 主进程号

//强制停止Nginx:
pkill -9 nginx
将刚刚编译好的nginx覆盖掉原有的nginx

cp ./objs/nginx /usr/local/nginx/sbin/
然后启动nginx,仍可以通过命令查看是否已经加入成功

/usr/local/nginx/sbin/nginx -V

此时应该显示为即配置成功:
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module


之后照常开启nginx即可