利用openssl签署终端(IP)证书

一、依赖

利用 OpenSSL 签发证书需要 OpenSSL 软件及库,一般情况下系统均已内置, 可执行 openssl 确认,如果提示 openssl: command not found,则需手动安装。

apt install 

二、签发证书

1、创建目录,并进入该目录。
mkdir -p /www/openssl && cd /www/openssl
2、生成终端证书请求文件

新建openssl.cnf,内容如下:

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
countryName = CN
countryName_default = CN
stateOrProvinceName = Chongqing
stateOrProvinceName_default = CQ
localityName = Chongqing
localityName_default = Chongqing
organizationalUnitName  = HOME
organizationalUnitName_default  = HOME
commonName = HOME Ltd
commonName_max  = 64

[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]

# 改成自己的域名
#DNS.1 = kb.example.com
#DNS.2 = helpdesk.example.org
#DNS.3 = systems.example.net

# 改成自己的ip
IP.1 = 192.168.3.150
IP.2 = 192.168.3.100
IP.3 = 192.168.3.160
3、生成私钥

san_jwnet_com 为最终生成的文件名,一般以服务器命名,可改。

openssl genrsa -out san_jwnet_com.key 2048
4、创建CSR文件
openssl req -new -out san_jwnet_com.csr -key san_jwnet_com.key -config openssl.cnf

执行后,系统会提示输入组织等信息,按提示输入如即可。

测试CSR文件是否生成成功,可以使用下面的命令:

openssl req -text -noout -in san_domain_com.csr


//执行后,会看到类似如下的信息:
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=US, ST=MN, L=Minneapolis, OU=Domain Control Validated, CN=zz
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                ...

5、自签名并创建证书
openssl x509 -req -days 3650 -in san_jwnet_com.csr -signkey san_jwnet_com.key -out san_jwnet_com.crt -extensions v3_req -extfile openssl.cnf

执行后,可看到本目录下多了以下三个文件

san_jwnet_com.crt
san_jwnet_com.csr
san_jwnet_com.key
6、合成成pem文件
cat san_jwnet_com.crt san_jwnet_com.key >  san_jwnet_com.pem

三、NGINX配置

http {
    
	include       mime.types;
	default_type  application/octet-stream;	
	sendfile        on;
	keepalive_timeout  65;
 
 
	# 这里是为了使用负载均衡,使得多个ip可以提供同一个服务,weight为权值
	# 权值越高,被选中的概率越大
	upstream monitor_server {
		# 需要代理的本地端口
		server 127.0.0.1:8083 weight=4;
	}
 
	server {
		listen 443 ssl;
		server_name 192.168.0.115;  # 域名
		ssl_certificate D:/server.crt; # 证书路径
		ssl_certificate_key D:/server.key; # 私钥路径
		ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
		error_page 497  https://$host$uri$args;  
		
		location /{
			proxy_pass  http://monitor_server/;
			proxy_set_header Host      $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_redirect http:// $scheme://; # 做https跳转
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto  $scheme; # 反向代理时透传给后端tomcat,用户使访问协议,tomcat后面也需要添加配置接收此参数
			client_max_body_size 100m;
			root html;
			index index.jsp index.html;
		}

   
	server {
		listen 80;
		server_name 192.168.0.115; # 域名
		location /{
			# 这里是强制跳转https
			rewrite ^(.*)$ https://$host$1 last;
		}
	}
 
}
1、网页访问

https://192.168.0.115

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值