Skip to content
Snippets Groups Projects
eec_subject.t 4.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • use Test::Nginx::Socket 'no_plan';
    
    run_tests();
    
    __DATA__
    
    === TEST 1: rfc proxy certificate, no AC
    --- main_config
        env X509_VOMS_DIR=t/vomsdir;
        env X509_CERT_DIR=t/trust-anchors;
    --- http_config
        server {
            error_log logs/error.log debug;
            listen 8443 ssl;
            ssl_certificate ../../certs/nginx_voms_example.cert.pem;
            ssl_certificate_key ../../certs/nginx_voms_example.key.pem;
            ssl_client_certificate ../../trust-anchors/igi-test-ca.pem;
            ssl_verify_depth 10;
            ssl_verify_client on;
    	location = / {
                default_type text/plain;
                echo $ssl_client_ee_s_dn;
    
                echo $ssl_client_ee_i_dn;
    
            }
        }
    --- config
        location = / {
            error_log logs/error-proxy.log debug;
            proxy_pass https://localhost:8443/;
            proxy_ssl_certificate ../../certs/0.cert.pem;
            proxy_ssl_certificate_key ../../certs/0.key.pem;
        }
    --- request
    GET / 
    --- response_body
    CN=test0,O=IGI,C=IT
    
    CN=Test CA,O=IGI,C=IT
    
    --- error_code: 200
    
    === TEST 2: standard x.509 certificate 
    --- main_config
        env X509_VOMS_DIR=t/vomsdir;
        env X509_CERT_DIR=t/trust-anchors;
    --- http_config
        server {
            error_log logs/error.log debug;
            listen 8443 ssl;
            ssl_certificate ../../certs/nginx_voms_example.cert.pem;
            ssl_certificate_key ../../certs/nginx_voms_example.key.pem;
            ssl_client_certificate ../../trust-anchors/igi-test-ca.pem;
            ssl_verify_depth 10;
            ssl_verify_client on;
    	location = / {
                default_type text/plain;
                echo $ssl_client_ee_s_dn;
                echo $ssl_client_s_dn;
    
                echo $ssl_client_ee_i_dn;
                echo $ssl_client_i_dn;
    
            }
        }
    --- config
        location = / {
            error_log logs/error-proxy.log debug;
            proxy_pass https://localhost:8443/;
            proxy_ssl_certificate ../../certs/nginx_voms_example.cert.pem;
            proxy_ssl_certificate_key ../../certs/nginx_voms_example.key.pem;
        }
    --- request
    GET / 
    --- response_body
    CN=nginx-voms.example,O=IGI,C=IT
    CN=nginx-voms.example,O=IGI,C=IT
    
    CN=Test CA,O=IGI,C=IT
    CN=Test CA,O=IGI,C=IT
    
    --- error_code: 200
    
    === TEST 3: three delegations proxy
    --- main_config
    
        load_module /etc/nginx/modules/ngx_http_echo_module.so;
        load_module /etc/nginx/modules/ngx_http_voms_module.so;
    
        env X509_VOMS_DIR=t/vomsdir;
        env X509_CERT_DIR=t/trust-anchors;
    --- http_config
        server {
            error_log logs/error.log debug;
            listen 8443 ssl;
            ssl_certificate ../../certs/nginx_voms_example.cert.pem;
            ssl_certificate_key ../../certs/nginx_voms_example.key.pem;
            ssl_client_certificate ../../trust-anchors/igi-test-ca.pem;
            ssl_verify_depth 10;
            ssl_verify_client on;
    	location = / {
                default_type text/plain;
                echo $ssl_client_ee_s_dn;
    
                echo $ssl_client_ee_i_dn;
    
            }
        }
    --- config
        location = / {
            error_log logs/error-proxy.log debug;
            proxy_pass https://localhost:8443/;
            proxy_ssl_certificate ../../certs/7.cert.pem;
            proxy_ssl_certificate_key ../../certs/7.key.pem;
        }
    --- request
    GET / 
    --- response_body
    CN=test0,O=IGI,C=IT
    
    CN=Test CA,O=IGI,C=IT
    
    --- error_code: 200
    
    
    === TEST 4: three delegations proxy + CA cert
    --- main_config
    
        load_module /etc/nginx/modules/ngx_http_echo_module.so;
        load_module /etc/nginx/modules/ngx_http_voms_module.so;
    
        env X509_VOMS_DIR=t/vomsdir;
        env X509_CERT_DIR=t/trust-anchors;
    --- http_config
        server {
            error_log logs/error.log debug;
            listen 8443 ssl;
            ssl_certificate ../../certs/nginx_voms_example.cert.pem;
            ssl_certificate_key ../../certs/nginx_voms_example.key.pem;
            ssl_client_certificate ../../trust-anchors/igi-test-ca.pem;
            ssl_verify_depth 10;
            ssl_verify_client on;
    	location = / {
                default_type text/plain;
                echo $ssl_client_ee_s_dn;
    
                echo $ssl_client_ee_i_dn;
    
            }
        }
    --- config
        location = / {
            error_log logs/error-proxy.log debug;
            proxy_pass https://localhost:8443/;
            proxy_ssl_certificate ../../certs/8.cert.pem;
            proxy_ssl_certificate_key ../../certs/8.key.pem;
        }
    --- request
    GET / 
    --- response_body
    CN=test0,O=IGI,C=IT
    
    CN=Test CA,O=IGI,C=IT
    
    --- error_code: 200