本博客启用 https 的过程

本贴最后更新于 477 天前,其中的信息可能已经事过境迁

申请 SSL 证书

我的博客部署在阿里云服务器上,因此我就先搜索阿里云启用 https 的方法,网上有比较详细的讲解,在此提供一个参考网址:
https://blog.csdn.net/cslucifer/article/details/79077831

修改 nginx 配置文件

我的博客设置了 nginx 作为前置服务器反向代理 Tomcat 的内容,因此需要配置的是 nginx 的证书而不是 Tomcat 的。我看了一下阿里云官方文档中证书下载页的详情文档,nginx 的配置方法比 Tomcat 简单很多,哈哈,看来真是一个明智的选择。

这个时候出现了一个问题,我找不到 nginx 的配置文件 nginx.conf 了。按照网上说的 nginx 安装目录死活找不到。没办法,只能动用 Linux 的查找文件的功能了。Linux 有若干个不同的查找文件的方法。其中 find 是最简单粗暴的命令,就是在指定目录中一个个地找,速度比较慢。另一个命令是 locate,它的执行速度很快,因为是在建立了文件索引的数据库中查找。我之前并没有使用过 locate 命令,只是在书上看到过,这次是第一次实际操作。当我输入 locate nginx.conf 时,意想不到的情况出现了,系统报告不存在 locate 命令。没办法,又只能问搜索引擎到底怎么回事。结果别人也有遇到这种情况的,貌似是 CentOS 7 以上版本不自带 locate 命令,解决方法如下:输入 yum install mlocate 以安装相关内容。之后更新一下数据库,输入 updatedb。安装完 locate 功能之后,再查找 nginx 的配置文件,非常轻松的找到了。
找到配置文件后,修改 nginx 配置文件中的

# HTTPS server
#
# server {
# balabala
# }

变为

# HTTPS server
#
server {
	listen 443;
	server_name localhost;
	ssl on;
	root html;
	index index.html index.htm;
	ssl_certificate   pem文件路径;
	ssl_certificate_key  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;
	 proxy_pass http://127.0.0.1:8080/;
	}
}

这样就可以开启 https 访问了。

强制使用 https 连接

不过还有一个问题,就是当用户输入不带协议名的域名时,依然选择 HTTP 连接。接下来我们要做的是强制使用 https 连接。网上有几种不同的解决方法,其中最简单的一种,是使用 rewrite。依然是在 nginx 配置文件中,找到

server {
        listen       80;
        server_name  localhost;

server_name localhost; 后面加上一行:rewrite ^(.*)$ https://$host$1 permanent; 。这样当用户输入不带协议名的域名时,也能自动选择 https 进行连接。

后记 小锁真漂亮

成功配置完 https 之后,使用浏览器访问我的博客时,地址栏会显示一把代表安全连接的小锁,而不是之前的不安全提示
https.png
之前也没感觉什么,自己配置成功后感觉这小锁可真漂亮啊。

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:PipeSoloSymWide 等。

    1129 引用 • 3368 回帖 • 516 关注
  • HTTPS
    90 引用 • 258 回帖 • 3 关注
  • SSL

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

    59 引用 • 182 回帖 • 575 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    78 引用 • 351 回帖 • 1 关注
回帖
请输入回帖内容...