"申请 SSL 证书 我的博客部署在阿里云服务器上,因此我就先搜索阿里云启用 https 的方法,网上有比较详细的讲解,在此提供一个参考网址: https://blog.csdn.net/cslucifer/article/details/79077831 修改 nginx 配置文件 我的博客设置了 nginx 作为前置 .."

本博客启用 https 的过程

申请 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 等,欢迎大家加入,贡献开源。

    2394 引用 • 3795 回帖 • 622 关注
  • HTTPS
    68 引用 • 190 回帖 • 1 关注
  • SSL

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

    45 引用 • 150 回帖 • 630 关注
  • 阿里云
    62 引用 • 336 回帖
感谢    关注    收藏    赞同    反对    举报    分享
回帖    
请输入回帖内容...