Centos7+Nginx通过windows CA颁发及配置SSL服务

近期在学习Linux的相关知识,作为一个运维工程师所必备的知识点,一个web服务尤其运行在互联网上的很容易攻击,所以为了保证安全最起码的需要对web服务配置SSL,这样能提高一定的安全性,所以我们今天介绍,Centos7+Nginx通过windows CA颁发及配置SSL服务,当然如果是生成环境的话,一般都会申请第三方证书,比如沃通等第三方证书颁发机构,今天我们主要使用的是内部的windows CA服务为nginx颁发证书,当然也可以使用Nginx的自签名证书,但是那样每次访问都会有相关的警告 提醒,具体见下:

环境介绍:

Hostname:DC.IXMSOFT.COM

IP:192.168.5.10

Role:DC、DNS、CA

OS:windows Server 2016

Hostname:D-S.IXMSOFT.COM

IP:192.168.5.20

Role:Nginx Service

OS: Centos 7.1

准备操作系统后及安装完成对应的配置:

1.hostnamectl set-hostname d-s

2.vim /etc/selinux/config--->selinux:disabled

3.添加防火墙规则:firewall-cmd –zone=public  --add-port=”80/tcp” –permenant

接下来就是安装nginx仓库

yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

yum install nginx

我们同样给nginx配置一个页面,主要是为了区分

vim /usr/share/nginx/html/index.html
<html>
<head>
<title>Welcome to Nginx!</title>
<style>
body {
35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body bgcolor="#BE77FF">
<h1>Welcome to D-S Nginx Service</h1>
<h2>HostName:D-S</h2>
<h2>IP:192.168.5.20</h2>
</body>
</html>

然后启动nginx服务

systemctl start nginx

接下来开始申请私钥

cd /etc/pki/tls
Openssl genrsa -out server.key 2048
Server.key 是私钥

用私钥serverkey 文件生成证书请求文件csr

openssl req -new -key server.key -out server.csr
Server.csr 是证书请求文件
域名,也称为 Common Name,因为特殊的证书不一定是域名:nginx.ixmsoft.com
组织或公司名字(Organization):Example, Ixmsoft
部门(Department):可以不填写,城市(City):Beijing
省份(State / Province):Beijing
国家(Country):CN
加密强度:2048 位,如果你的机器性能强劲,也可以选择 4096 位
如果是泛域名证书,则应该填写*.ixmsoft.com

我们打开刚才生成的csr文件

此时,我们有了csr文件我们通过这个文件在内部的windows CA服务器上申请证书

使用base64位编码的CMC或者RKCS提交证书申请

然后我们将csr文件的内容粘贴,选择web服务证书模板提交

一定要下载basic64编码这个类型,不然在nginx启动的时候回报错

下载证书完成

我们将该证书上传到192.168.5.20上,nginx服务器上

我们将证书拷贝到证书目录下

cp certnew.cer /etc/pki/tls
ls

我们为了证书统一 配置,再nginx的目录下创建了一个ssl目录,专门存放证书文件

cd /etc/nginx
Mkdir ssl

然后我们将刚才的那三个文件拷贝到这个目录下

cp /etc/pki/tls/server.key server.csr certnew.crt /etc/nginx/ssl/

我们为了好记名,将申请的证书修改名字及扩展名

mv certnew.cer web.pem

在配置ssl之前,我们先访问以下,默认是80

接下来我们配置ssl,默认的配置文件

vim /etc/nginx/conf.d/default.conf

我们因为不使用80,所以default.conf用不到,mv default.conf default.conf.bak 重命名

我们在/etc/nginx/conf.d/下新建一个配置文件

vim nginx-ssl.conf
server {
listen 443;
server_name nginx.ixmsoft.com;
ssl on;
ssl_certificate /etc/nginx/ssl/web.pem;
ssl_certificate_key /etc/nginx/ssl/server.key;
access_log logs/ssl_access.log;
location / {
root /usr/share/nginx/html;
}
}

我们保证配置文件没有问题,可以使用以下命令测试

Nginx -t

查看端口信息

接下来我们尝试访问,443可以访问了,而且证书加载都是对的

如果想访问80跳转到443,那么我们需要修改刚才的nginx_ssl.conf文件。

我们需要配置一下

server {
listen 80;
server_name nginx.ixmsoft.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443;
server_name nginx.ixmsoft.com;
ssl on;
ssl_certificate /etc/nginx/ssl/web.pem;
ssl_certificate_key /etc/nginx/ssl/server.key;
access_log logs/ssl_access.log;
location / {
root /usr/share/nginx/html;
}
}

这样重启nginx后,使用80访问后会自动跳转到443端口的https下

时间: 2024-10-27 18:22:39

Centos7+Nginx通过windows CA颁发及配置SSL服务的相关文章

Nginx 通过 certbot 为网站自动配置 SSL 证书并续期

一.背景知识 1.1.http 和 https 是什么? 简单来说,http 是一个传输网页内容的协议,比如你看到的 http 开头的网站 http://www.163.com ,其网页上的文字.图片. CSS . JS 等文件都是通过 http 协议传输到我们的浏览器,然后被我们看到. 而 https 可以理解为“ HTTP over SSL/TLS ”,好端端的 http 为什么需要“ over SSL/TLS ”呢,因为 http 是明文传输的,通过 http 协议传输的内容很容易被偷看和

laravel + php cgi + nginx在windows平台下的配置

1.d:\xampp\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\xampp\php\php.ini 2.nginx conf配置如下: #user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info; #pid logs/nginx.pid; events { worker_co

centos7 nginx+php5.6+mysql安装与配置

安装与配置 php 56的安装 php的配置写在 php.ini,可在phpinfo()中查看 //查找已安装 yum list installed | grep php // php卸载 yum -y remove php56* yum remove httpd* php* 可用的资源: centos 安装php56+nginx nginx + php-fpm nginx安装 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPM

Windows环境下安装配置Mosquitto服务及入门操作介绍

#### 原创:DisSun ########## #### 时间:2019.03.10 ####### 关于Mosquitto配置的资料网上还是有几篇的,但是看来看去,基本上都是基于Linux.基于Window的凤毛麟角,看上去貌似配置的东西相差不大,实操过程中真的烦透了,配置就是不成功,这次把自己实践过程中的东西记录一下,分享出来. 一.概念梳理1.Mosquitto是一款实现了消息推送协议MQTT 3.1的开源消息代理软件,提供轻量级的.支持可订阅/可发布的消息推送模式,是设备与设备之间的

Windows:server2003中配置ftp服务

前言:如果你已经非常清楚的掌握了Windows server 2003的安全机制,那么你可以通过开启Windows自带的ftp服务进行使用,不过很多情况下,这不安全,但是我会告诉你方法,这需要你的Windows安装目录下有对应的ftp安装包.另外我会告诉你,通过Xlight FTP,你可以更便捷. 1.通过Windows的ftp服务安装,见下图 注意:这种方法很不安全,如果你不需要考虑安全,那就可以按照上面的步骤执行下去. 2.通过XLight的FTP进行服务安装 ·首先下载xlight ftp

Centos7 nginx 搭建https服务器

Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一款轻量级的Web 服务器/反向代理服务器及电

Windows Server 2016下配置NFS集群

说到Windows下集群,大家都会想到Windows系统自带的故障转移的集群服务,详细的我们就不多说了,今天主要介绍的Windows Server 2016下配置NFS服务集群,我们为什么搭建今天的服务呢?是有一定的原因的,在此我们就说说原因吧~从去年年开始公司就一直上线OA系统,OA系统中有一个附件服务器,通过Mount的方式做共享数据,由于之前做的是单点,供应商也没有好的方法,所以就想到了用windows的NFS做集群,经过尝试确实效果还不错,所以分享给有需要的同学参考. 环境介绍: Hos

Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)

准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796.html) 2.证书颁发机构(CA)颁发的有效证书,其中我们需要两个文件,一个是 .key文件(私钥),另一个是 .crt或.pem文件(公钥) 核心功能 ? 通过指定由受信任的证书颁发机构(CA)颁发的有效证书,将服务器配置为侦听端口上的HTTPS流量. ? 通过配置nginx.conf文件来加强

Centos7.5 下Nginx配置SSL支持https访问。

核心配置: ? 通过指定由受信任的证书颁发机构(CA)颁发的有效证书,将服务器配置为侦听端口上的HTTPS流量.? 通过配置nginx.conf文件来加强安全性.示例包括选择更强大的密码,并将所有流量通过HTTP重定向到HTTPS.? 添加HTTP Strict-Transport-Security(HSTS)头部确保客户端所做的所有后续请求仅通过HTTPS. ####################################################################