HTTP 申请 SSL 证书向 HTTPS 升级

本贴最后更新于 1620 天前,其中的信息可能已经渤澥桑田

前段时间,阿里云提醒 SSL 证书快过期了,当时项目在忙,没时间处理。趁着周末,申请下 SSL 证书处理下该问题,特此记录下流程。

1.申请证书

SSL 证书是数字证书的一种,因为配置在服务器上,也称为 SSL 服务器证书。因为阿里云上可以直接申请证书,故直接在其上搜索申请。
申请步骤如下:
1.购买证书
选择相关产品,按需购买,本人选择是免费的一款。
image.png
2.证书申请
点击证书申请,填入相关信息,等待审批就可以使用啦
image.png
3.下载证书
下载证书放到服务器,开始进行下一步操作。
image.png

2.服务器配置

SSL 证书可以在 tomcat,nginx,apache 等等都可以进行配置。我这里使用的是 nginx。故记录的是 nginx 的配置过程。
一顿操作下,配置好后,发现 nginx 启动报错,原来,需要 nginx 开启 ssl 模块。😕
1.png
操作步骤:
进入之前的 nginx 目录
cd /home/nginx-1.16.0
配置 configure
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make
不能执行 make install 会覆盖安装 ~
停止 nginx,并替换之前的 nginx
/usr/local/nginx/sbin/nginx -s stop
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak
cp /home/nginx-1.16.0/objs/nginx /usr/local/nginx/sbin/nginx
查看安装情况
/usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.16.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

3.配置 nginx

配置/usr/local/nginx/conf/nginx.conf 文件
配置信息如下:

   upstream tomcatServer{
        server localhost:8080;
    }

    server {
	#http跳转到https
        listen 80 ;
        server_name www.lhlstudy.com;
        rewrite ^/(.*)$ https://www.lhlstudy.com:443$1 permanent;

     }
    server {
	#可以配置为http与https 同时存在的情况,这里配置为http强制跳转至https
        #listen 80;
        listen 443 ssl;
        server_name  www.lhlstudy.com ;

        ssl_certificate      cert/study.pem;
        ssl_certificate_key  cert/study.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 / {

            proxy_redirect off;
	    #可以配置至页面静态地址,由于这里是tomcat启动,配置tomcat访问代理
            proxy_pass http://tomcatServer;
           # proxy_set_header Host $host;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
       
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

检测配置文件是否正确
/usr/local/nginx/sbin/nginx -t
重启 nginx
/usr/local/nginx/sbin/nginx -s reload

4.打开页面检测

打开主页发现页面格式错乱,通过控制台发现页面资源文件还是指向 http,才想起 solo 的博客需要在 latke.properties 配置文件中修改 serverScheme=https。设置后,重启服务。解决问题!

  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 436 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖
  • HTTPS
    99 引用 • 274 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...