常见 web 服务器的 SSL 证书部署指导

IIS 服务器 SSL 证书部署

IIS 服务器安装及配置

Note

本例以 Windows Server 2012 R2、IIS8.0 为例。

首先打开「服务管理器」,点击右上角的「管理」,选择「添加角色和功能」。

1535362028812

一直点击「下一步」,直到「服务器角色」一项。在中间的「角色」列表中点击「Web服务器(IIS)」,在弹出框里勾选「包括管理工具」然后点击「添加功能」,成功添加角色。

1535363667589

1535363781986

1535364624578

点击「下一步」,进入「功能」项,勾选「.Net Framewore 3.5」(具体功能选择以用户实际需求为准)。

1535364405100

点击「下一步」,直到「角色服务」一项,在中间「角色服务」列表选择需要安装的项目,本例中只在默认的基础上勾选了「应用程序开发」,其他服务依需选择,也可以之后安装。

1535364933100

点击「下一步」进入「确认」一项,点击「安装」,待安装成功,点击「关闭」。

1535366905835

IE 浏览器打开输入本机公网 IP,或者本机内网 IP,或 localhost,即可显示 IIS8.0 界面。

1535367409007

打开 Internet Information Services 管理器进行配置:

1535367712626

补充:若安装过程出现如下报错,则是 winrm 服务未启动,需要先配置。

1535366938533

winrm 配置方法:以管理员身份启动 cmd,执行 winrm quickconfig 命令。

1535367004775

SSL 证书的部署

获取 SSL 证书

下载申请或者购买的证书文件到本地并解压,其中 cert.pem 是服务端证书 ,fullchain.pem 是公钥,privkey.pem 是私钥。若无证可用证书,可以参考 申请 SSL 证书,或者 购买SSL证书 指南。

1535419954987

1535420078258

转换证书

IIS 导入的证书要求是 PFX 格式,网上有在线转换的工具,但是会上传你的私钥。安全起见,本例使用 OpenSSL命令转换。

Note

本例以网易云 CentOS7.4 云服务器为例;

网易云云服务器默认安装了 OpenSSL,用户环境未安装的可以自行下载安装。

上传 pem 格式的证书文件

# ls
cert.pem  chain.pem  fullchain.pem  privkey.pem

查看 OpenSSL 版本

# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

转换证书格式,其中 server.pfx 为转换的目标文件,privkey.pem 为私钥,fullchain.pem 为公钥。执行转换命令后需要设置密钥密码。

# openssl pkcs12 -export -out server.pfx -inkey privkey.pem -in fullchain.pem
Enter Export Password:
Verifying - Enter Export Password:

下载生成的 PFX 证书文件到本地。

安装证书

上传证书到 IIS 服务器上,打开IIS管理器,双击「服务器证书」。

1535430364937

右边「操作」栏中单击「导入」,选择上传的PFX证书文件,输入之前转换证书时设置的密码。

Attention

因为PFX证书中包含私钥,不建议勾选「允许导出此证书」。

1535430561822

然后在网站的根目录下创建一个 index.html 文件,并写入测试代码。

<p>This is the test page.</p> 

选择「网站」,点击「添加网站」,填写必要的参数,启动网站。

1535430709661

1535431074698

浏览器输入域名进行访问测试,证书已经成功安装。

Attention

安全组策略确认 443 端口已经开放。

1535431123984

查看证书信息

1535431222831

Nginx 服务器 SSL 证书部署

Nginx 服务器的安装及配置

Note

本例以网易云 CentOS7.4 云主机为测试环境。

YUM安装nginx

# yum install nginx -y
# systemctl start nginx
# nginx -v
nginx version: nginx/1.12.2

Note

其他具体配置项依照用户实际需求自行配置。

SSL 证书的部署

把下载的证书上传到配置文件指向的目录,打开 nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到被注释掉的 server 配置,进行修改。

server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  www.iblogs.top;                                #证书绑定的网站域名
        root         /usr/share/nginx/html;
        ssl_certificate "/home/cert/iblogs/fullchain.pem";          #证书公钥
        ssl_certificate_key "/home/cert/iblogs/privkey.pem";        #证书私钥
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        location / {
        root html;
        index index.html index.html;
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

保存退出,并重新加载 nginx 配置

# nginx -s reload

浏览器输入域名进行访问测试,证书已经成功安装。

Attention

安全组策略确认 443 端口已经开放。

1535516904953

Apache 服务器 SSL 证书部署

Apache 服务器的安装及配置

Note

本例以网易云 CentOS7.4 云主机为测试环境。

安装 Apache 和 ssl 模块,并启动 Apache

# yum install httpd -y
# yum install mod_ssl -y
# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Jun 27 2018 13:48:59
# systemctl start httpd

确认此时可以 http 访问。

SSL 证书的部署

Attention

安装完 mod_ssl 会创建一个默认的 SSL 证书,路径位于 /etc/pki/tls,我们要修改 ssl 配置文件,将默认证书替换成我们上传的证书。

把下载的证书上传到配置文件指向的目录,打开 ssl 配置文件,找到「VirtualHost」模块,将默认证书替换成自己上传的证书。

Note

SSL 配置文件默认路径:/etc/httpd/conf.d/ssl.conf;

本例使用默认的 VirtualHost 做测试。

<VirtualHost _default_:443>
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
SSLEngine on
SSLCertificateFile /home/cert/iblogs/cert.pem      #证书
SSLCertificateKeyFile /home/cert/iblogs/privkey.pem    #私钥
SSLCertificateChainFile /home/cert/iblogs/fullchain.pem  #公钥
</VirtualHost> 

重启 Apache

# systemctl restart httpd

浏览器输入域名进行访问测试,证书已经成功安装。

Attention

安全组策略确认 443 端口已经开放。

1535524526973

1535524588579