关于域名、备案、SSL证书、HTTPS协议那些事
域名购买与备案;SSL 证书的购买与使用;Nginx 安装使用 HTTPS 协议的方法。Nginx 如何安装 http_ssl_module
前言
昨天,我非常顺利的部署了服务器。今天,我就开始着手微信小程序上线一个体验版试试效果。然而,微信小程序去要求服务器必须使用申请域名且完成 ICP 备案,另外还必须使用 HTTPS 协议。没方法,只能按要求完成了。
域名购买与备案
域名购买有两种途径,一种是在阿里云上注册一个新的域名,另外一种方法就是购买别人出售的域名了。
域名购买成功后,还需要在阿里云中域名模块添加解析规则成功才能使用。
备案呢!也是在阿里云上进行备案。但需要注意的是,因为信息延迟的原因,备案一定是要等域名购买成功后,2-3天才能进行。还有就是,阿里云要求你进行备案的服务器必须拥有三个月以上(三个月前购买的服务器或者直接续费三个月都行)才能进行购买。等你提交成功后,阿里云会进行一个初审,会有短信验证或者钉钉视频验证个人真实信息。至于那种方式,具体按政府的规定。
注意,我是在阿里云购买的服务器,所以才在阿里云上 进行域名购买和备案。
使用 HTTPS 协议
购买 SSL 证书
要给服务器配置 HTTPS 协议,首先需要根据服务器的域名来购买 SSL 证书。证书的购买可以直接在阿里云个人域名基本信息中购买。
-
进入域名基本信息页面,点击开启SSL证书。就可以跳转的 SSL 证书购买页面了。
-
接着点击购买按钮
- 选择你想要的 SSL 证书。可以选择付费或者免费版本的。
这样就完成 SSL 证书的购买了。
下载 SSL 证书
购买完 SSL 证书后,我们需要把 SSL 证书下载下来,然后安装到云服务器上。
如上图,可以下载的 SSL 证书类型有很多。我们不用全部下载,只需要依照云服务器上安装 Web 服务器来下载就行了。
安装 SSL 证书
不同的 Web 服务器,安装 SSL 证书的方法不同。在阿里云上都有相应的安装教程。
这里说是安装证书,实际上只是将证书解压放到云服务器上,然后开启 Web 服务器的 SSL 功能。
因为我使用的是 Nginx,所以我这里只讲解 Nginx 的一些注意事项。
-
需要开放服务器 443 端口。因为 HTTPS 使用的是443端口。
端口的开放需要在阿里云服务器控制台中选择:网络安全 -> 安全组 -> 配置规则 -> 入方向 -> 快速添加 -> 勾选HTTPS (443) ,最后确认添加。
-
Nginx 需要安装 SSL 对应的扩展模块:http_ssl_module 。
这一点是最坑的。如果你的 Nginx 是通过 APT 安装的。你就会难以成功安装这个模块。因为网上基本所有的教程中的 Nginx 都是使用安装包安装。我就是因为这个原因,搞得头都大了。最后不得不屈服。重装了 Nginx。
当然,并不是说用 APT 安装的 Nginx 不能扩展。可以扩展,但是需要根据你暗转的 Nginx 版本到 Nginx 的官网下载对应的安装包。然后解压,接着安装http_ssl_module扩展模块。再然后就是覆盖 Nginx 和 配置什么的了。如果,你用安装包安装过 Nginx 你就会发现上面的步骤跟重装没什么区别。更何况,网上教程少得可怜。所以,对于不熟悉Nginx的同学,我建议就是重装 Nignx。
第一步:卸载 Nignx。参考自:ubuntu 16.04.1 nginx彻底删除
-
删除nginx,-purge包括配置文件
sudo apt-get --purge remove nginx
-
移除全部不使用的软件包
sudo apt-get autoremove
-
罗列出与nginx相关的软件并删除
dpkg --get-selections|grep nginx
sudo apt-get --purge remove nginx
sudo apt-get --purge remove nginx-common
sudo apt-get --purge remove nginx-core
-
查看nginx正在运行的进程,如果有就kill掉
ps -ef |grep nginx
sudo kill -9 XXX
-
全局查找与nginx相关的文件
sudo find / -name nginx*
sudo rm -rf file
第二步:使用安装包安装 Nginx。参考:ubuntu安装nginx
-
安装依赖包
apt-get install gcc
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g zlib1g-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev
-
安装 Nginx
cd /usr/local
mkdir nginx
cd nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz
-
编译 NIgnx
进入nginx目录
cd /usr/local/nginx/nginx-1.13.7
执行命令
./configure
执行make命令
make
执行make install命令
make install
这时候先不要启动 Nginx.
第三步:安装扩展 http_ssl_module
-
进入 Nginx 安装包解压后的目录
cd /usr/local/nginx/nginx-1.13.7
-
configure安装扩展
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
-
编译make
make
-
备份原有的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak\
-
然后将刚刚编译好的nginx覆盖掉原有的nginx(nginx需要停止)
cp ./objs/nginx /usr/local/nginx/sbin/
-
启动Nginx
/usr/local/nginx/sbin/nginx
第四步:安装证书。参考:在Nginx或Tengine服务器上安装证书
-
在
/usr/local/nginx/conf
下创建 cert 目录cd /usr/local/nginx/conf
mkdir cert
-
将 SSL 证书解压后放到 cert 目录下
-
在
/usr/local/nginx/conf/nginx.conf
中添加如下配置:server { listen 443 ssl; server_name localhost; 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 / { index index.html index.htm; }
-
最后,重启 Nginx 服务
/usr/local/nginx/sbin/nginx -s reload
至此,SSL 证书安装完成。
结语
以上就是我关于域名申请、ICP 备案以及 HTTPS 协议开启的讲解了。希望对您有所帮助。
自此,关于项目部署到服务器的过程讲解完毕。因为是第一次部署,可能存在诸多不足与错误,望悉知!
关于服务器购买、服务器环境搭建可查看:第一次架设服务器实记:献给初次接触项目部署、云服务器的朋友们
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)