openssl生成证书

  1. openssl genrsa -out server.key 2048
  2. openssl req -new -key server.key -out server.csr
  3. openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

[nginx@machine certificate]$  openssl genrsa -out server.key 2048
Generating RSA private key, 2048 bit long modulus
..+++
......................................................................+++
e is 65537 (0x10001)
[nginx@machine certificate]$ ll
total 4
-rw-r----- 1 nginx nginx 1679 Jul 11 16:35 server.key
[nginx@machine certificate]$ 
[nginx@machine certificate]$ openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,

If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn
State or Province Name (full name) []:gd
Locality Name (eg, city) [Default City]:gz
Organization Name (eg, company) [Default Company Ltd]:ai
Organizational Unit Name (eg, section) []:ai
Common Name (eg, your name or your server's hostname) []:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[nginx@machine certificate]$ 
[nginx@machine certificate]$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=cn/ST=gd/L=gz/O=ai/OU=ai
Getting Private key
[nginx@machine certificate]$ ll
total 12
-rw-r----- 1 nginx nginx 1099 Jul 11 16:36 server.crt
-rw-r----- 1 nginx nginx  952 Jul 11 16:35 server.csr
-rw-r----- 1 nginx nginx 1679 Jul 11 16:35 server.key
[nginx@machine certificate]$ 

nginx配置

[nginx@machine ~]$ cd /etc/nginx/ [nginx@machine nginx]$ more nginx.conf

user nginx; worker_processes 1;

error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid;

events { worker_connections 1024; }

http { include /etc/nginx/mime.types; default_type application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;
#tcp_nopush     on;

keepalive_timeout  65;

#gzip  on;

upstream zuul_nginx {
    server 10.13.22.104:8080;
    server 10.13.22.105:8080;
    server 10.13.22.106:8080;
    server 10.13.22.107:8080;
}

server {
    listen 18010 ssl;
    #listen 443 ssl;
    #server_name 10.13.22.124;
    ssl on;
    ssl_certificate /app/nginx/certificate/server.crt;
    ssl_certificate_key /app/nginx/certificate/server.key;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    #ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers   on;
    location /ouyidaorder {
        proxy_pass http://zuul_nginx;
    }
}

server {
    listen 8080 ssl;
    ssl on;
    ssl_certificate /app/nginx/certificate/server.crt;
    ssl_certificate_key /app/nginx/certificate/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;
    location /ouyidaorder {
        proxy_pass http://zuul_nginx;
    }
}

include /etc/nginx/conf.d/*.conf;

}

用root重启nginx。

测试

(1)浏览器访问:https://10.13.22.124:8080/ouyidaorder/api/Subscribe (2)curl https://10.13.22.124:18010/ouyidaorder/api/Subscribe