nginx使用https自签证书
前置条件 在配置https之前请确保下面的步骤已经完成
服务器已经安装nginx并且通过http可以正常访问
1、检查ssl模块是否安装
在配置ssl证书之前,要确保你的nginx已经安装了ssl模块,一般情况下自己安装的nginx都是不存在ssl模块的。
不知道如何配置ssl模块的参考下一篇文章
这里先检查下自己是否存在ssl模块:
进入到你的nginx安装目录下面,我的目录是在(/usr/local/nginx)
进入到目录的sbin目录下,输入
nginx -v
如果出现 --with-http_ssl_module, 则已安装
2、生成ssl证书 、创建配置文件
创建配置文件req.cnf
# 定义输入用户信息选项的"特征名称"字段名,该扩展字段定义了多项用户信息。
distinguished_name = req_distinguished_name
# 生成自签名证书时要使用的证书扩展项字段名,该扩展字段定义了要加入到证书中的一系列扩展项。
x509_extensions = v3_req
# 如果设为no,那么 req 指令将直接从配置文件中读取证书字段的信息,而不提示用户输入。
prompt = no
[req_distinguished_name]
#国家代码,一般都是CN(大写)
C = CN
#省份
ST = js
#城市
L = cz
#企业/单位名称
O = sss
#企业部门
OU = echohye
#证书的主域名
CN = 10.10.10.10
##### 要加入到证书请求中的一系列扩展项 #####
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[ alt_names ]
IP.1 = 10.10.10.10
# IP.2 = 192.168.11.222
3、在放置该文件的目录下执行以下命令
shell# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout server.key -out server.crt -config req.cnf -sha256
#openssl 命令参数说明
req 大致有3个功能:生成证书请求文件、验证证书请求文件和创建根CA
-x509 说明生成自签名证书
-nodes openssl req在自动创建私钥时,将总是加密该私钥文件,并提示输入加密的密码。可以使用"-nodes"选项禁止加密私钥文件。
-days 指定所颁发的证书有效期。
-newkey 实际上,"-x509"选项和"-new"或"-newkey"配合使用时,可以不指定证书请求文件,它在自签署过程中将在内存中自动创建证书请求文件
"-newkey"选项和"-new"选项类似,只不过"-newkey"选项可以直接指定私钥的算法和长度,所以它主要用在openssl req自动创建私钥时。
rsa:2048 rsa表示创建rsa私钥,2048表示私钥的长度。
-keyout 指定私钥保存位置。
-out 新的证书请求文件位置。
-config 指定req的配置文件,指定后将忽略所有的其他配置文件。如果不指定则默认使用/etc/pki/tls/openssl.cnf中req段落的值
命令执行完之后本层目录会生成server.crt和server.key两个文件
4、在nginx配置ssl证书
server {
listen 80 ssl;
server_name 10.10.10.10;
ssl_certificate /home/dpan/soft/ssl/server.crt;
ssl_certificate_key /home/dpan/soft/ssl/server.key;
}
5、修改完配置之后,重新加载
nginx -s reload
6、访问验证
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果