常见 web 服务器的 SSL 证书部署指导
IIS 服务器 SSL 证书部署
IIS 服务器安装及配置
Note
本例以 Windows Server 2012 R2、IIS8.0 为例。
首先打开「服务管理器」,点击右上角的「管理」,选择「添加角色和功能」。
一直点击「下一步」,直到「服务器角色」一项。在中间的「角色」列表中点击「Web服务器(IIS)」,在弹出框里勾选「包括管理工具」然后点击「添加功能」,成功添加角色。
点击「下一步」,进入「功能」项,勾选「.Net Framewore 3.5」(具体功能选择以用户实际需求为准)。
点击「下一步」,直到「角色服务」一项,在中间「角色服务」列表选择需要安装的项目,本例中只在默认的基础上勾选了「应用程序开发」,其他服务依需选择,也可以之后安装。
点击「下一步」进入「确认」一项,点击「安装」,待安装成功,点击「关闭」。
IE 浏览器打开输入本机公网 IP,或者本机内网 IP,或 localhost,即可显示 IIS8.0 界面。
打开 Internet Information Services 管理器进行配置:
补充:若安装过程出现如下报错,则是 winrm 服务未启动,需要先配置。
winrm 配置方法:以管理员身份启动 cmd,执行 winrm quickconfig 命令。
SSL 证书的部署
获取 SSL 证书
下载申请或者购买的证书文件到本地并解压,其中 cert.pem 是服务端证书 ,fullchain.pem 是公钥,privkey.pem 是私钥。若无证可用证书,可以参考 申请 SSL 证书,或者 购买SSL证书 指南。
转换证书
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管理器,双击「服务器证书」。
右边「操作」栏中单击「导入」,选择上传的PFX证书文件,输入之前转换证书时设置的密码。
Attention
因为PFX证书中包含私钥,不建议勾选「允许导出此证书」。
然后在网站的根目录下创建一个 index.html 文件,并写入测试代码。
<p>This is the test page.</p>
选择「网站」,点击「添加网站」,填写必要的参数,启动网站。
浏览器输入域名进行访问测试,证书已经成功安装。
Attention
安全组策略确认 443 端口已经开放。
查看证书信息
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 端口已经开放。
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 端口已经开放。
原文链接:https://sf.163.com/help/documents/193900380505165824