Nginx自签ssl证书创建及配置方法

场景:

Nginx使用自签ssl证书实现https连接。

方法:

第一步:使用OpenSSL创建证书

#建立服务器私钥(过程需要输入密码,请记住这个密码)生成RSA密钥
>openssl genrsa -des3 -out server.key 1024
#生成一个证书请求    
>openssl req -new -key server.key -out server.csr
#需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书
#---------------------------------------------------------------------------------------------------------------
Enter pass phrase for server.key:                                      #之前输入的密码
Country Name (2 letter code) [XX]:                   #国家
State or Province Name (full name) []:                 #区域或是省份
Locality Name (eg, city) [Default City]:                #地区局部名字
Organization Name (eg, company) [Default Company Ltd]:         #机构名称:填写公司名
Organizational Unit Name (eg, section) []:               #组织单位名称:部门名称
Common Name (eg, your name or your server‘s hostname) []:     #网站域名
Email Address []:                             #邮箱地址
A challenge password []:                         #输入一个密码,可直接回车
An optional company name []:                       #一个可选的公司名称,可直接回车
#---------------------------------------------------------------------------------------------------------------
#输入完这些内容,就会在当前目录生成server.csr文件
>cp server.key server.key.org
>openssl rsa -in server.key.org -out server.key
#使用上面的密钥和CSR对证书进行签名
#以下命令生成v1版证书
>openssl x509 -req  -days 365 -sha256   -in server.csr -signkey server.key -out servernew.crt
#以下命令生成v3版证书
>openssl x509 -req  -days 365 -sha256 -extfile openssl.cnf -extensions v3_req   -in server.csr -signkey server.key -out servernew.crt

v3版证书另需配置文件openssl.cnf,该文件内容详见博客《OpenSSL生成v3证书方法及配置文件》

至此,证书生成完毕!

附常用对证书的操作:

查看key、csr及证书信息

openssl rsa -noout -text -in myserver.key
openssl req -noout -text -in myserver.csr
openssl x509 -noout -text -in ca.crt

不同格式证书的转换

# PKCS转换为PEM
> openssl pkcs12 -in myserver.pfx -out myserver.pem -nodes

# PEM转换为DER
> openssl x509 -outform der -in myserver.pem -out myserver.[der|crt]

# PEM提取KEY
> openssl RSA -in myserver.pem -out myserver.key

# DER转换为PEM
> openssl x509 -inform der -in myserver.[cer|crt] -out myserver.pem

# PEM转换为PKCS
> openssl pkcs12 -export -out myserver.pfx -inkey myserver.key -in myserver.pem -certfile ca.crt

第二步:Nginx下ssl配置方法

首先,确保安装了OpenSSL库,并且安装Nginx时使用了–with-http_ssl_module参数。

证书拷至nginx目录,配置如下server


server {

listen 443 ssl;

server_name your.domain.name;

index index.html index.htm index.php;

ssl on;

ssl_certificate      ssl/hotyq.com.crt;

ssl_certificate_key  ssl/hotyq.com.key;

ssl_session_cache    shared:SSL:10m;

ssl_session_timeout 5m;

ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;

}

另,还可加入如下配置实现https重定向


server {

isten 80;

server_name your.domain.name;

rewrite ^(.*) https://$server_name$1 permanent;

}

敲黑板:

配置完毕后restart   nginx!第一次配置https时必须重启,不能reload!

时间: 2024-11-04 15:31:44

Nginx自签ssl证书创建及配置方法的相关文章

nginx自签ssl证书

环境基于nginx1.9源码安装编博文!!! 把nginx.conf配置文件备份一下,然后进行相应的server_name更改为bbs.zxl.com方式访问 [[email protected] ~]# cd /usr/local/nginx/conf/ [[email protected] conf]# pwd /usr/local/nginx/conf [[email protected] conf]# cp nginx.conf nginx.conf.bak 检查nginx语法 [ema

CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问

参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问(http跳转到https) 5.nginx ssl 107 (net::ERR_SSL_PROTOCOL_ERROR) 无法与服务器建立安全连接 解决方法 配置过程如下: 我的nginx是 yum 安装 具体安装过程参考:[转]CENTOS 6.5 配置YUM安装NGINX+服务器负载均衡 一.安

ssl证书 以及phpstudy配置ssl证书

首先,确保你的Apache编译了SSL模块,这是支持SSL证书必要的条件(如果没有,请编译,[打开phpstudy]>[其他选项菜单]>[PHP扩展]>[php-openssl]前面勾选上). 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中. 打开 Apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉前面的"#"注释符,使得SSL模块生效(如果该模块已去掉注释,请不用操作). 接着搜索以下内

为什么“部署自签SSL证书非常不安全”

目前,有许多重要的公网可以访问的网站系统(如网银系统)都在使用自签SSL证书,即自建PKI系统颁发的SSL证书,而不是部署支持浏览器的SSL证书,这绝对是得不偿失的重大决策失误,自签证书普遍存在严重的安全漏洞,极易受到攻击.主要问题有:    1. 自签证书最容易被假冒和伪造,而被欺诈网站所利用.    所谓自签证书,就是自己做的证书,既然你可以自己做,那别人可以自己做,可以做成跟你的证书一模一样,就非常方便地伪造成为有一样证书的假冒网银网站了.    而使用支持浏览器的SSL证书就不会有被伪造

使用自签SSL证书有什么风险?

http://mt.sohu.com/20150602/n414267586.shtml 所谓自签SSL证书,是指不受信任的任意机构或个人,使用工具自己签发的SSL证书.自签名SSL证书可以随意签发,没有第三方监督审核,不受浏览器和操作系统信任,常被用于伪造证书进行中间人攻击,劫持SSL加密流量.很多网站为了节约成本,采用自签名SSL证书,其实是给自己的网站埋下了一颗定时炸弹,随时可能被黑客利用. 网站使用自签SSL证书存在极大的风险,主要来自以下几个方面: 自签SSL证书最容易被假冒和伪造,被

nginx多域名ssl证书以及lua模块的编译安装

#!/bin/bash #unzip zip&tar file function  untarfile(){ for i in $( ls . |grep -v .sh) do val=$(echo $i | grep ".zip$" |wc -l) if [[ "$val"  -eq  1 ]];then dirname=$(echo $i|sed "s/.zip//") if [[ ! -d $dirname ]];then echo

腾讯云域名申请+ssl证书申请+springboot配置https

阿里云域名申请 域名申请比较简单,使用微信注册阿里云账号并登陆,点击产品,选择域名注册 输入你想注册的域名 进入域名购买页面,搜索可用的后缀及价格,越热门的后缀(.com,.cn)越贵一般,并且很可能已经被注册. 最后,付款购买即可. 申请ssl证书 还是进入首页,点击产品按钮,在下拉菜单中选择ssl证书,进入后点立即购买,在下图中做如下选择 ssl证书是要与域名绑定的,按要求填好域名和邮箱,密码可以不填 填写好,选择下一步,然后选择手动dns,提交,然后查看证书详情. 进入域名解析页面,找到你

JAVA通过SSL证书创建MS AD账户及设置密码

近期由于工作需要整理一下自动化的东西,因为公司去年上线了OA,所以公司的入职系统会提交用户的信息到IT部门,最早的做法是入职到了,IT部门收集用户信息在AD中创建对应的用户信息,所以为了提高管理员的工作效率,所以准备实施自动创建AD账户,当OA流程到IT人员审批节点后,IT人员审批后根据人员信息自动创建AD账户,所以整理了一些JAVA创建AD人员信息的信息,但是我们需要注意点的是,对于JAVA语言操作MS AD的一些普通操作是不需要SSL的,但是对于用户密码的重置操作必须使用SSL,当然之前看网

ssl证书(https) iis 配置安装

因客户给的 cer的文件 导入提示 失败,所以用 了 客户给的 crt的格式的证书. 安装证书操作如下:iis>>服务器证书>>右侧菜单-完成证书申请>>选择 本文件夹下的 crt文件>> 证书安装完毕 配置网站如下: 在响应的站点>>绑定>>选择 刚安装的证书>>重启网站>>完毕