File tree 10 files changed +154
-0
lines changed
10 files changed +154
-0
lines changed Original file line number Diff line number Diff line change @@ -38,6 +38,29 @@ matrix:
38
38
-c "SET password_encryption = 'scram-sha-256'" \
39
39
-c "CREATE ROLE scram_test login password 'test4scram'"
40
40
41
+ # Run tests/paths with client certificate authentication
42
+ - node_js : lts/*
43
+ env :
44
+ - CC=clang CXX=clang++ npm_config_clang=1 PGUSER=postgres PGDATABASE=postgres
45
+ PGSSLMODE=verify-full
46
+ PGSSLROOTCERT=$TRAVIS_BUILD_DIR/packages/pg/test/tls/test-server-ca.crt
47
+ PGSSLCERT=$TRAVIS_BUILD_DIR/packages/pg/test/tls/test-client.crt
48
+ PGSSLKEY=$TRAVIS_BUILD_DIR/packages/pg/test/tls/test-client.key
49
+ before_script : |
50
+ yarn build
51
+ node packages/pg/script/create-test-tables.js postgresql:///
52
+
53
+ cat >> /etc/postgresql/10/main/postgresql.conf <<'END'
54
+ ssl = on
55
+ ssl_cert_file = 'test-server.crt'
56
+ ssl_key_file = 'test-server.key'
57
+ ssl_ca_file = 'test-client-ca.crt'
58
+ END
59
+ printf 'hostssl all all %s cert\n' 127.0.0.1/32 ::1/128 > /etc/postgresql/10/main/pg_hba.conf
60
+ make -C packages/pg/test/tls install DESTDIR=/etc/postgresql/10/main
61
+
62
+ systemctl restart postgresql
63
+
41
64
- node_js : lts/carbon
42
65
addons :
43
66
postgresql : ' 9.5'
Original file line number Diff line number Diff line change
1
+ DESTDIR ::= /var/lib/postgres/data
2
+ POSTGRES_USER ::= postgres
3
+ POSTGRES_GROUP ::= postgres
4
+ DATABASE_HOST ::= localhost
5
+ DATABASE_USER ::= postgres
6
+
7
+ all : \
8
+ test-server-ca.crt \
9
+ test-client-ca.crt \
10
+ test-server.key \
11
+ test-server.crt \
12
+ test-client.key \
13
+ test-client.crt
14
+
15
+ clean :
16
+ rm -f \
17
+ test-server-ca.key \
18
+ test-client-ca.key \
19
+ test-server-ca.crt \
20
+ test-client-ca.crt \
21
+ test-server.key \
22
+ test-server.crt \
23
+ test-client.key \
24
+ test-client.crt
25
+
26
+ install : test-server.crt test-server.key test-client-ca.crt
27
+ install \
28
+ --owner=$(POSTGRES_USER ) \
29
+ --group=$(POSTGRES_GROUP ) \
30
+ --mode=0600 \
31
+ -t $(DESTDIR ) \
32
+ $^
33
+
34
+ test-% -ca.crt : test-% -ca.key
35
+ openssl req -new -x509 \
36
+ -subj ' /CN=node-postgres test $* CA' \
37
+ -days 3650 \
38
+ -key $< \
39
+ -out $@
40
+
41
+ test-server.csr : test-server.key
42
+ openssl req -new \
43
+ -subj ' /CN=$(DATABASE_HOST)' \
44
+ -key $< \
45
+ -out $@
46
+
47
+ test-client.csr : test-client.key
48
+ openssl req -new \
49
+ -subj ' /CN=$(DATABASE_USER)' \
50
+ -key $< \
51
+ -out $@
52
+
53
+ test-% .crt : test-% .csr test-% -ca.crt test-% -ca.key
54
+ openssl x509 -req \
55
+ -CA test-$* -ca.crt \
56
+ -CAkey test-$* -ca.key \
57
+ -set_serial 1 \
58
+ -days 3650 \
59
+ -in $< \
60
+ -out $@
61
+
62
+ % .key :
63
+ openssl genpkey \
64
+ -algorithm EC \
65
+ -pkeyopt ec_paramgen_curve:prime256v1 \
66
+ -out $@
67
+
68
+ .PHONY : all clean install
69
+ .SECONDARY : test-server-ca.key test-client-ca.key
70
+ .INTERMEDIATE : test-server.csr test-client.csr
71
+ .POSIX :
Original file line number Diff line number Diff line change
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBozCCAUmgAwIBAgIUNYMF06PrmjsMR6x+C8k5YZn9heAwCgYIKoZIzj0EAwIw
3
+ JzElMCMGA1UEAwwcbm9kZS1wb3N0Z3JlcyB0ZXN0IGNsaWVudCBDQTAeFw0yMDEw
4
+ MzExOTI1NDdaFw0zMDEwMjkxOTI1NDdaMCcxJTAjBgNVBAMMHG5vZGUtcG9zdGdy
5
+ ZXMgdGVzdCBjbGllbnQgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASI/Efx
6
+ Pq0P54VKPkTUOTwBH1iuYbnLpd4kAGjb1E334/p9CEBbDREVSqDjYjWswFybxKIF
7
+ ooKXtMpEMJfymJAUo1MwUTAdBgNVHQ4EFgQU/b/FRwYZ5/VMjdesIolksiqNYK4w
8
+ HwYDVR0jBBgwFoAU/b/FRwYZ5/VMjdesIolksiqNYK4wDwYDVR0TAQH/BAUwAwEB
9
+ /zAKBggqhkjOPQQDAgNIADBFAiEApHFCAWGbRGqYkyiBO+gMyX6gF5oFJywUupZP
10
+ LfgIRDACIDBZotzPe6+BIl2fU9Xgm7CxV6cCoX8bPEJKveKMnOaN
11
+ -----END CERTIFICATE-----
Original file line number Diff line number Diff line change
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgKsipfQWM+41FriF7
3
+ kRxVaiNi8qY1fzLx6Dp/gUQQPG6hRANCAASI/EfxPq0P54VKPkTUOTwBH1iuYbnL
4
+ pd4kAGjb1E334/p9CEBbDREVSqDjYjWswFybxKIFooKXtMpEMJfymJAU
5
+ -----END PRIVATE KEY-----
Original file line number Diff line number Diff line change
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBITCByAIBATAKBggqhkjOPQQDAjAnMSUwIwYDVQQDDBxub2RlLXBvc3RncmVz
3
+ IHRlc3QgY2xpZW50IENBMB4XDTIwMTAzMTE5MjU0N1oXDTMwMTAyOTE5MjU0N1ow
4
+ EzERMA8GA1UEAwwIcG9zdGdyZXMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARY
5
+ 4j5AgTLi/O/UTB8l1mX+nD9u3SW9RwN1mekcqEZqCpOPMsQEQ/HLxaKnoSTD6w/G
6
+ NqrBnHlbMGPwEdKvV96bMAoGCCqGSM49BAMCA0gAMEUCIQDzfjm+BzmjrsIO4QRu
7
+ Et0ShHBK3Kley3oqnzoJHCUSmAIgdF5gELQ5mlJVX3bAI8h1cKiC/L6awwg7eBDU
8
+ S1gBTaI=
9
+ -----END CERTIFICATE-----
Original file line number Diff line number Diff line change
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgL9jW07+fXy/74Ub3
3
+ 579RXm0Xpo7lnNnQleSzkTEXCrmhRANCAARY4j5AgTLi/O/UTB8l1mX+nD9u3SW9
4
+ RwN1mekcqEZqCpOPMsQEQ/HLxaKnoSTD6w/GNqrBnHlbMGPwEdKvV96b
5
+ -----END PRIVATE KEY-----
Original file line number Diff line number Diff line change
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBozCCAUmgAwIBAgIUD582G2ou0Lg9q7AJeAMpiQVaiPQwCgYIKoZIzj0EAwIw
3
+ JzElMCMGA1UEAwwcbm9kZS1wb3N0Z3JlcyB0ZXN0IHNlcnZlciBDQTAeFw0yMDEw
4
+ MzExOTI1NDdaFw0zMDEwMjkxOTI1NDdaMCcxJTAjBgNVBAMMHG5vZGUtcG9zdGdy
5
+ ZXMgdGVzdCBzZXJ2ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT/jGRh
6
+ FiZu96o0hfgIkep4PusTwI6P1ASFh8LgnUu2bMcIlYakQK0ap2XvCaSl9675+Lu9
7
+ yNZaSZVA5LpFICXto1MwUTAdBgNVHQ4EFgQUHI1BK+6u7r9r1XhighuP2/eGcQUw
8
+ HwYDVR0jBBgwFoAUHI1BK+6u7r9r1XhighuP2/eGcQUwDwYDVR0TAQH/BAUwAwEB
9
+ /zAKBggqhkjOPQQDAgNIADBFAiALwBWN9pRpaGQ12G9ERACn8/6RtAoO4lI5RmaR
10
+ rsTHtAIhAJxMfzNIgBAgX7vBSjHaqA08CozIctDSVag/rDlAzgy0
11
+ -----END CERTIFICATE-----
Original file line number Diff line number Diff line change
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgyUd4vHDNrEFzfttP
3
+ z+AFp3Tbyui+b3i9YDW7VqpMOIKhRANCAAT/jGRhFiZu96o0hfgIkep4PusTwI6P
4
+ 1ASFh8LgnUu2bMcIlYakQK0ap2XvCaSl9675+Lu9yNZaSZVA5LpFICXt
5
+ -----END PRIVATE KEY-----
Original file line number Diff line number Diff line change
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBITCByQIBATAKBggqhkjOPQQDAjAnMSUwIwYDVQQDDBxub2RlLXBvc3RncmVz
3
+ IHRlc3Qgc2VydmVyIENBMB4XDTIwMTAzMTE5MjU0N1oXDTMwMTAyOTE5MjU0N1ow
4
+ FDESMBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
5
+ 4Mwi6dHeWRZ2QU19a5ykq6gJfIVJDEaJqNlWXk/5/laiGy8ScBV0YAlvk9xsfAyU
6
+ YDxcQTjQkeC0bbzhdEPjNjAKBggqhkjOPQQDAgNHADBEAiB+DW/8Kg3tuoovAE+8
7
+ 1Pv/8OkF3MD4A1ztULkW3KJ4PwIgMn7ea3HrEQJoeSKFe1kKIgNrHftdC5kZQYj5
8
+ uNXYpLo=
9
+ -----END CERTIFICATE-----
Original file line number Diff line number Diff line change
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBoW9xxWBH2tHiPFk
3
+ 9ajPALHyw0lHAY1DF8WvHQNodx2hRANCAATgzCLp0d5ZFnZBTX1rnKSrqAl8hUkM
4
+ Romo2VZeT/n+VqIbLxJwFXRgCW+T3Gx8DJRgPFxBONCR4LRtvOF0Q+M2
5
+ -----END PRIVATE KEY-----
You can’t perform that action at this time.
0 commit comments