关于域名、备案、SSL证书、HTTPS协议那些事

前言

昨天,我非常顺利的部署了服务器。今天,我就开始着手微信小程序上线一个体验版试试效果。然而,微信小程序去要求服务器必须使用申请域名且完成 ICP 备案,另外还必须使用 HTTPS 协议。没方法,只能按要求完成了。

域名购买与备案

域名购买有两种途径,一种是在阿里云上注册一个新的域名,另外一种方法就是购买别人出售的域名了。

域名购买成功后,还需要在阿里云中域名模块添加解析规则成功才能使用。

备案呢!也是在阿里云上进行备案。但需要注意的是,因为信息延迟的原因,备案一定是要等域名购买成功后,2-3天才能进行。还有就是,阿里云要求你进行备案的服务器必须拥有三个月以上(三个月前购买的服务器或者直接续费三个月都行)才能进行购买。等你提交成功后,阿里云会进行一个初审,会有短信验证或者钉钉视频验证个人真实信息。至于那种方式,具体按政府的规定。

注意,我是在阿里云购买的服务器,所以才在阿里云上 进行域名购买和备案。

使用 HTTPS 协议

购买 SSL 证书

要给服务器配置 HTTPS 协议,首先需要根据服务器的域名来购买 SSL 证书。证书的购买可以直接在阿里云个人域名基本信息中购买。

  1. 进入域名基本信息页面,点击开启SSL证书。就可以跳转的 SSL 证书购买页面了。
    关于域名、备案、SSL证书、HTTPS协议那些事_第1张图片

  2. 接着点击购买按钮

关于域名、备案、SSL证书、HTTPS协议那些事_第2张图片

  1. 选择你想要的 SSL 证书。可以选择付费或者免费版本的。

关于域名、备案、SSL证书、HTTPS协议那些事_第3张图片

这样就完成 SSL 证书的购买了。

下载 SSL 证书

购买完 SSL 证书后,我们需要把 SSL 证书下载下来,然后安装到云服务器上。

关于域名、备案、SSL证书、HTTPS协议那些事_第4张图片

如上图,可以下载的 SSL 证书类型有很多。我们不用全部下载,只需要依照云服务器上安装 Web 服务器来下载就行了。

安装 SSL 证书

不同的 Web 服务器,安装 SSL 证书的方法不同。在阿里云上都有相应的安装教程。

这里说是安装证书,实际上只是将证书解压放到云服务器上,然后开启 Web 服务器的 SSL 功能。

因为我使用的是 Nginx,所以我这里只讲解 Nginx 的一些注意事项。

  1. 需要开放服务器 443 端口。因为 HTTPS 使用的是443端口。

    端口的开放需要在阿里云服务器控制台中选择:网络安全 -> 安全组 -> 配置规则 -> 入方向 -> 快速添加 -> 勾选HTTPS (443) ,最后确认添加。

  2. 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彻底删除

  1. 删除nginx,-purge包括配置文件

    sudo apt-get --purge remove nginx
    
  2. 移除全部不使用的软件包

    sudo apt-get autoremove
    
  3. 罗列出与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
    
  4. 查看nginx正在运行的进程,如果有就kill掉

    ps -ef |grep nginx
    
    sudo kill -9 XXX
    
  5. 全局查找与nginx相关的文件

    sudo  find  /  -name  nginx*
    
    sudo rm -rf file
    

第二步:使用安装包安装 Nginx。参考:ubuntu安装nginx

  1. 安装依赖包

    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
    
  2. 安装 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 
    
  3. 编译 NIgnx

    进入nginx目录

    cd /usr/local/nginx/nginx-1.13.7
    

    执行命令

    ./configure
    

    执行make命令

    make
    

    执行make install命令

    make install
    

这时候先不要启动 Nginx.

第三步:安装扩展 http_ssl_module

  1. 进入 Nginx 安装包解压后的目录

    cd /usr/local/nginx/nginx-1.13.7
    
  2. configure安装扩展

    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    
  3. 编译make

    make
    
  4. 备份原有的nginx

    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak\
    
  5. 然后将刚刚编译好的nginx覆盖掉原有的nginx(nginx需要停止)

    cp ./objs/nginx /usr/local/nginx/sbin/
    
  6. 启动Nginx

    /usr/local/nginx/sbin/nginx
    

第四步:安装证书。参考:在Nginx或Tengine服务器上安装证书

  1. /usr/local/nginx/conf下创建 cert 目录

    cd /usr/local/nginx/conf
    
    mkdir cert
    
  2. 将 SSL 证书解压后放到 cert 目录下

  3. /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;
    }
    
  4. 最后,重启 Nginx 服务

    /usr/local/nginx/sbin/nginx -s reload
    

至此,SSL 证书安装完成。

  1. 最后,重启 Nginx 服务

    /usr/local/nginx/sbin/nginx -s reload
    

至此,SSL 证书安装完成。

结语

以上就是我关于域名申请、ICP 备案以及 HTTPS 协议开启的讲解了。希望对您有所帮助。
自此,关于项目部署到服务器的过程讲解完毕。因为是第一次部署,可能存在诸多不足与错误,望悉知!

关于服务器购买、服务器环境搭建可查看:第一次架设服务器实记:献给初次接触项目部署、云服务器的朋友们

你可能感兴趣的:(杂记,nginx,ssl,域名,HTTPS,备案)