草庐IT

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

有伊说一 2023-03-28 原文
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下

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

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  4. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  5. ruby - 通过 erb 模板输出 ruby​​ 数组 - 2

    我正在使用puppet为ruby​​程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby​​不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这

  6. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  7. ruby - 通过 ruby​​ 进程共享变量 - 2

    我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是

  8. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  9. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  10. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

随机推荐