SSL 证书部署过程
本文演示环境
操作系统(64位):Ubuntu 16.04 CentOS 7.3 服务器软件:Nginx和Apache SSL证书:DV SSL 域名:19time.cn(已经解析二级域名wx.19time.cn)
腾讯云申请的证书里面包含4个文件夹和1个文件。申请完成等个十几分钟,就会成功了。
图文中四个文件夹为相对应的软件部署的文件夹。
以Apache文件夹里的内容说明一下,文件夹中的文件是什么。
1_root_bundle.crt为根证书书链(公钥) 2_19time.cn.crt为证书公钥 3_19time.cn.key是证书私钥
Ubuntu 16.04&&Apache
1、安装Apache
# apt-get install apache2 -y
2、运行Apache
# service apache restart
运行http://wx.19time.cn,可以看到如下效果。
此时访问:https://wx.19time.cn是不会成功的。
3、将证书用FTP工具上传。
# mkdir /etc/SSL
# mv Apache/ /etc/SSL
4、安装其他的必须模块
# sudo a2enmod ssl
-- 启用ssl模块,启用之后,要求重启Apache
# sudo apt-get install openssl
--安装OpenSSL
# cd /etc/apache2/sites-available
-- 当Apache加载SSL模块会生成此文件。用vim打开。
# sudo vim default-ssl.conf
打开是这样的
需要进行修改第二行
<VirtualHost _default_:443>
修改为:<VirtualHost wx.19time.cn:443>
第四行加入一行:
ServerName wx.19time.cn --得到如下效果
然后进行修改证书路径,32,33,行附近。
SSLCertificateFile /etc/SSL/Apache/2_www.domain.com_cert.crt
SSLCertificateKeyFile /etc/SSL/Apache/3_www.domain.com.key
SSLCertificateChainFile /etc/SSL/Apache/1_root_bundle.crt
-- 最后这一行手动添加。
完成之后:wq!保存退出。
# vim 000-default.conf
-- 修改成443
# service apache2 restart
-- 重启Apache,另外,你需要在云服务器安全组配置中放开443端口访问权限。
-- 还有一点注意,如果你需要是http://wx.19time.cn
-- 重定向到https://wx.19time.cn
-- 需要在网站的根目录下,也就是/var/www/html下 配置.htaccess文件
-- 如果没有则需要创建
# ls -a 可以查看隐藏文件。
--------------------------.htaccess配置分割线-----------------------------
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
# service apache2 restart
访问就OK了。
Ubuntu系统的Apache搭建就ok了。现在进行Nginx实例稍等,我先重装系统...
.
.
.
.
.
.
.
.
Ubuntu 16.04&&Nginx
Nginx文件夹包含的内容
1、安装Nginx
# sudo apt-get install nginx -y
-- 从到安装OpenSSL之前都是一样的操作,
-- Nginx与Apahce的ssl配置文件不一样。
.........此处省略一些操作......
# cd /etc/nginx/sites-available # vim default
去掉注释,将80端口的注释。default_server 改成自己的。
ssl on;
listen 443 ssl wx.19time.cn;
listen [::]:443 ssl wx.19time.cn;
ssl_certificate /etc/SSL/Nginx/1_19time.cn_bundle.crt
ssl_certificate_key /etc/SSL/Nginx/2_19time.cn.key
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
---------------------分割线-----------------------------
重启Nginx
# sudo service nginx restart
CentOS 7.3&&http(Nginx)
1、安装Nginx
# yum install nginx -y
2、打开Nginx配置文件修改配置nginx.conf
# cd /etc/Nginx/ # vim nginx.conf
3、注释掉80
将443端口的注释去掉
listen 443 ssl http2 wx.19time.cn;
listen [::]:443 ssl http2 wx.19time.cn;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/SSL/Nginx/1_19time.cn_bundle.crt";
ssl_certificate_key "/etc/SSL/Nginx/2_19time.cn.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
-- 退出保存
server {
listen 80;
server_name www.server.com;
rewrite ^(.*)$ https://www.server.com;
} -- 强制跳转https
4、配置防火墙
CentOS 7 下用的防火墙是firewalld,配置防火墙用命令firewall-cmd
# firewall-cmd --zone=public --add-port=443/tcp --permanent
-- 开启443端口,这之前你需要开启防火墙
# firewall-cmd --list-ports
-- 确认是否开通
# firewall-cmd --reload
# Nginx -s reload
-- 重启
- Golang 连接mssql sql server
- UWP基础教程 - XAML对象元素和属性
- UWP基础教程 - 禁用&开启截取应用屏幕
- Android开发中应该避免的内存泄露
- UWP基础教程 - XAML资源
- Golang笔记——并发
- UWP基础教程 - XAML标记扩展
- UWP基础教程 - RelativePanel
- UWP基础教程 - AuotmationProperties.Name
- 暴力遍历还没注册的双拼域名
- JRuby——Java和Ruby的强强联合
- Golang语言关于零值的定义
- 使用Yeoman创建ASP.NET Core项目
- Golang语言捕获panic异常并转化为error
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用Python语言写Hadoop MapReduce程序
- Hadoop3单机和伪分布式模式安装配置
- Matlab系列之符号运算(下)
- Hadoop、MapReduce、HDFS介绍
- 微博爬取热搜榜和热门话题
- BFS+剪枝查找目标转推流节点
- 使用Google翻译Api
- Flutter基础widgets教程-AppBar篇
- 排查rtmp协议推流时握手bug
- Python常用模块集锦
- Flutter基础widgets教程-AspectRatio篇
- go2school-2
- go2school-1
- [源码阅读] 阿里SOFA服务注册中心MetaServer(1)
- Hadoop项目:从cdn日志统计直播流量