摘要:
1、生成证书,使用域控CA根证书签署,在内网进行正常使用。 2、nginx配置SSL证书,使用https。
配置:
1、向域控管理员申请 .pfx 格式的域控根证书
2、安装OpenSSL
openssl version -a
如果显示版本信息,说明已安装完成,否则需要安装。
yum install openssl
yum update openssl
3、使用.pfx格式文件生成ca根证书
openssl pkcs12 -in ca.pfx -nodes -out ca.pem
openssl rsa -in ca.pem -out ca.key
openssl x509 -in ca.pem out ca.crt
4、修改证书配置文件
cp /etc/pki/tls/openssl.cnf ./
-
(1) [ req ] 下需要有如下两行(没有的话补全) [ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
-
(2) 确保 req_distinguished_name 下没有0.xxx的标签,有的话吧0.xxx的0.去掉 -
(3) [ v3_req ] 添加一行数据到最后 [ v3_req ]
subjectAltName = @alt_names
-
(4) [ alt_names ] 中添加IP和域名,可以多级域名同时添加 [ alt_names ]
IP = 192.168.1.100
DNS.1 = xx.xx.com
DNS.2 = *.xx.xx.com
5、在服务器生成证书
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out harbor.csr -config openssl.cnf
openssl x509 -trustout -req -days 3650 -sha256 -extfile openssl.cnf -extensions v3_req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
说明:-trustout 是nginx使用的证书需要添加的,其他服务加了可能会异常
使用:
1、nginx
nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log error;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
add_header 'Cache-Control' 'no-cache';
server {
listen 80;
server_name xx.xx.com; // 你的域名
location / {
rewrite ^(.*)$ http://xx.xx.com:443$1 permanent;
}
}
server {
listen 443 ssl;
server_name xx.xx.com; // 你的域名
index index.html;// 上面配置的文件夹里面的index.html
ssl_certificate /xxx/cert/server.crt;
ssl_certificate_key /xxx/cert/server.key;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_verify_client off;
root /xxx/xxx/html; // 前台文件存放文件夹,一般使用 Nginx 初始化的文件夹,当然也可以自己修改
location / {
index index.html index.htm;
}
}
}
|