Skip to content

Commit

Permalink
added ssl code
Browse files Browse the repository at this point in the history
  • Loading branch information
simplesteph committed Jul 13, 2018
1 parent dca2c86 commit 61e67d4
Show file tree
Hide file tree
Showing 9 changed files with 306 additions and 5 deletions.
22 changes: 18 additions & 4 deletions greet/greet_client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"time"

"google.golang.org/grpc/codes"
"google.golang.org/grpc/credentials"

"github.com/simplesteph/grpc-go-course/greet/greetpb"

Expand All @@ -18,7 +19,20 @@ import (
func main() {

fmt.Println("Hello I'm a client")
cc, err := grpc.Dial("localhost:50051", grpc.WithInsecure())

tls := false
opts := grpc.WithInsecure()
if tls {
certFile := "ssl/ca.crt" // Certificate Authority Trust certificate
creds, sslErr := credentials.NewClientTLSFromFile(certFile, "")
if sslErr != nil {
log.Fatalf("Error while loading CA trust certificate: %v", sslErr)
return
}
opts = grpc.WithTransportCredentials(creds)
}

cc, err := grpc.Dial("localhost:50051", opts)
if err != nil {
log.Fatalf("could not connect: %v", err)
}
Expand All @@ -27,13 +41,13 @@ func main() {
c := greetpb.NewGreetServiceClient(cc)
// fmt.Printf("Created client: %f", c)

// doUnary(c)
doUnary(c)
// doServerStreaming(c)
// doClientStreaming(c)
// doBiDiStreaming(c)

doUnaryWithDeadline(c, 5*time.Second) // should complete
doUnaryWithDeadline(c, 1*time.Second) // should timeout
// doUnaryWithDeadline(c, 5*time.Second) // should complete
// doUnaryWithDeadline(c, 1*time.Second) // should timeout
}

func doUnary(c greetpb.GreetServiceClient) {
Expand Down
16 changes: 15 additions & 1 deletion greet/greet_server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"time"

"google.golang.org/grpc/codes"
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/status"

"github.com/simplesteph/grpc-go-course/greet/greetpb"
Expand Down Expand Up @@ -115,7 +116,20 @@ func main() {
log.Fatalf("Failed to listen: %v", err)
}

s := grpc.NewServer()
opts := []grpc.ServerOption{}
tls := false
if tls {
certFile := "ssl/server.crt"
keyFile := "ssl/server.pem"
creds, sslErr := credentials.NewServerTLSFromFile(certFile, keyFile)
if sslErr != nil {
log.Fatalf("Failed loading certificates: %v", sslErr)
return
}
opts = append(opts, grpc.Creds(creds))
}

s := grpc.NewServer(opts...)
greetpb.RegisterGreetServiceServer(s, &server{})

if err := s.Serve(lis); err != nil {
Expand Down
27 changes: 27 additions & 0 deletions ssl/ca.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIEpDCCAowCCQCiHVjNBhVHbzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
b2NhbGhvc3QwHhcNMTgwNzEzMDcxNzU3WhcNMjgwNzEwMDcxNzU3WjAUMRIwEAYD
VQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDs
U+rZq9S1kE52ANwY9DIk2/WUaMLupzGpdwGI87lJ3V9eMZgyOKukcZEBas/lG2My
DVAQo8mWXnvf/caGdqNjLpt3WMRocTt/pGegbYGA0aXEc+ryHcwjOrg1MObpqd9n
FKbq1kAFb2xUmquI4j4JG9DW6M+gzjH5QcpJLuD98OPghd9m6GrNEgZno7eMkWax
p5Cg61UmEtMEyc6D/RCyOndr+Biq0RA8FF0+WJwAgbtkBCeomjvEFG0q4Qlwz8mK
NENhRjavH/O44W2qWyp6NBN5YPvLejdd9SREIFiNOYuRXwJYuCPnJcwCE3InSaZC
sGPB0IELGmATIfBgKj3EmZS6yQByn0AtYDzmcBkWp//u1MwtWuc4AmOj4lzYlWSP
TxlN+SnbX1JBHZweqSWySkow8bIln2aX+4J3EMrhgWjnRuKDvGYoOajdWq3TFxNS
8EXBMnJ/P3AoBs8PxH++di1TdXDzMxG1jCa2gSl18baWv6dVp0vOh3JMsOI04XIT
Kj/z/+c4pwU9z9vfk/CXlayfWTulSyVOi5si9XyiHPNCP6InDGmQXj6+5Ilkd8U+
1EYYYF4srZtBApqYbs94oKcZOEQwsJTzM1fuvLLNX16RasM2OcWh461p9VK5H76X
zZyyXZKCqrIM7tyloTYJUvVXCfI5aEi2mejAXsXYLwIDAQABMA0GCSqGSIb3DQEB
CwUAA4ICAQDHm7Qhq6KOUhgcbVAm+daWV6SPLI0sGR/odxr+kNGm/Uzgb7fhhVSf
uHvkHGL/e7Uib3aMiUOYBsishUCw5wUWrtjw9PYW+K9YLFjeFrGQdPc8lE6C/k/K
D4scasrJTpvqB2bq1X0KqGPHPERYpD89LkSj9PCV4E/wy2evP+dX1+9WtoGW/mSR
4oj+XsfTqjVN1rax2ylBr3meCZaGvDpLuGdJ6kENxn2v2wJ6ZyJmUDihc31XCbw1
R9h1tjPJvXUk2tARXz7hHMY0TE/jk5I2t3BtY1GfWXn5Kolf8sUuKxl6lRdV5wbn
z3g4hePQcrxLpju3jHqD5Xfp87z9zj5utytK6ox0KztTTxQvqgSvVWQsefresX/t
yfYpZUx+zcYg+CzAVq6t9m8Q7WHargN3wmRNAHXBywlbJ+7WS5EIjVzZQTaMNv04
OBdf2dIhWLb1B0dc5LL9bACB56t9Yo3QVwUhryYVST1RHQ5DtTsxRWuZh1W1x0CM
3/LxmjFZe1FH4zQVqq8L/U3yl04maV0wrWnPhuDqFJMHTYLIlH61Be4hKlU4I7ne
Y6gJ8hOvMNKfbcllaXljN0YEq5TWr6OynPPj6p0/iKWgEmTh/6PcvflzIEkBqHsj
yax6NU+xkEen9F5rgCS+P96NfOcM5Vo2fMNaCh/v8oWUYopdiQ+etg==
-----END CERTIFICATE-----
54 changes: 54 additions & 0 deletions ssl/ca.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,B987710AA1D34CDD

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
-----END RSA PRIVATE KEY-----
33 changes: 33 additions & 0 deletions ssl/instructions.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash
# Inspired from: https://github.com/grpc/grpc-java/tree/master/examples#generating-self-signed-certificates-for-use-with-grpc

# Output files
# ca.key: Certificate Authority private key file (this shouldn't be shared in real-life)
# ca.crt: Certificate Authority trust certificate (this should be shared with users in real-life)
# server.key: Server private key, password protected (this shouldn't be shared)
# server.csr: Server certificate signing request (this should be shared with the CA owner)
# server.crt: Server certificate signed by the CA (this would be sent back by the CA owner) - keep on server
# server.pem: Conversion of server.key into a format gRPC likes (this shouldn't be shared)

# Summary
# Private files: ca.key, server.key, server.pem, server.crt
# "Share" files: ca.crt (needed by the client), server.csr (needed by the CA)

# Changes these CN's to match your hosts in your environment if needed.
SERVER_CN=localhost

# Step 1: Generate Certificate Authority + Trust Certificate (ca.crt)
openssl genrsa -passout pass:1111 -des3 -out ca.key 4096
openssl req -passin pass:1111 -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=${SERVER_CN}"

# Step 2: Generate the Server Private Key (server.key)
openssl genrsa -passout pass:1111 -des3 -out server.key 4096

# Step 3: Get a certificate signing request from the CA (server.csr)
openssl req -passin pass:1111 -new -key server.key -out server.csr -subj "/CN=${SERVER_CN}"

# Step 4: Sign the certificate with the CA we created (it's called self signing) - server.crt
openssl x509 -req -passin pass:1111 -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

# Step 5: Convert the server certificate to .pem format (server.pem) - usable by gRPC
openssl pkcs8 -topk8 -nocrypt -passin pass:1111 -in server.key -out server.pem
27 changes: 27 additions & 0 deletions ssl/server.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIEnDCCAoQCAQEwDQYJKoZIhvcNAQEFBQAwFDESMBAGA1UEAwwJbG9jYWxob3N0
MB4XDTE4MDcxMzA3MTgwMVoXDTI4MDcxMDA3MTgwMVowFDESMBAGA1UEAwwJbG9j
YWxob3N0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnAnHLldYwwAk
ry93YMns2ahE0sQewjlrio/1BE66zJJW8gcCnY6SWJivBqYxCJSWC+KfM0qH9nME
15fbK8kZewEsz7PQY9avNM+wC21sXEIiTpIHl4v2jq662EL3JpbnAIbNPeTKy1La
abVrzZaewosQEWveUcZCRp2qxvP0iUQ7MY/zQMhvFPVp5ShlzTaV6e3OOFt5k1hI
RXtnF73zPHPYkwW8eqL95faI59V59oFKqb2NZty/D19O3EsNlimjPxVqzwKvPKKN
1QDU3Dh18As7Acf4RQvZqMQS46/7Z5gleHJgox/Nm92Dynj4vmVPdhkxm9e1iS+o
NnKajM1HpMYgFJfIfrC8HrlpYT+wLLXb0Z39TigNHWuB+JjYuLqG+wvA2HVbxrIZ
n6iQcf63t/6BaRXte4yn7HyhbPoZodea1NcXxbJCXg2vFZTmlWxf+P7ylilDSzPk
okbjo0jxi+xXB5+v1e5CZdn9y8WmHu20SZz/9o3HQ0PAO1wYgfNhjLdMcREMhRY0
RC7FobVREfBuzUGr0uomEZM87g4wAgtBUQ8dyB+txXd5LVQffA62Tja71v479r2x
W+EVMM0mA0xHcAEH29IR76kDm6yHUh+kuPFxGsnBBPkUS4Nj2r6tUaQBYuBDScXy
HrUwh2HlkgRbE/LoKwwfNjtDrprVB3ECAwEAATANBgkqhkiG9w0BAQUFAAOCAgEA
NIHcvF9aqfPJlY7biFQU2AdFTpWQ7ihUExVK3esMHPCsNn3omAYerZc3v2ysbH5X
qeDRQSunSpVOin7j/izBlHVi+jM4uh2ESx/VW63MrZS0rrL557Zx2Im71Q4HWQS8
Y0Ub8IjIDAGf2W31CuogxCvOv/gx9mLOtPppaaly0AemWFF3WLW2ioXJcUrXrltY
qbTv6VlhrFZjXC8sHYGLM+PdUg7MFrATOWW/g1FFXZMKuNkOxRs6zXJizEKFfdPB
gs8yxv0s3k1DAG7BkPDtvU+NGr9iYSRCq0FD+BG/yOSD3gDWHrHZNsbbksRGfhBD
ApVmuFg854bI3Aad7y6hh3E22n52BgXHMpCAscCWVrQsWUvnuu+msuK/GKL1XQ0X
RO+A/4UWP729O2g+BWyncpRKRds9mIJoDQVVsEKSs60XPD/Wc5Wi5IaYqY39KCo2
+bHJuZTWDfXfuexaVFWXw0i3BbIzfb++PCNdu+KbuSW6dxU5yCheaU/+8KkbHnEG
RqcoDr9DMQIFk+0vKPbimcsPpczdY2rpEdE18Yjhyqreal2lP/N4EfmA4/zKLt/X
uDCKratRknHhVuCn7J3KYlosw1K7U5NHkZkw4jreiuN8vVJmYkxuVlbKJfih6TtX
9oWpLdfpyf2WED/sLlxyIm3CE0kKtGUFd/l8R9ETmx4=
-----END CERTIFICATE-----
26 changes: 26 additions & 0 deletions ssl/server.csr
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIEWTCCAkECAQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MIICIjANBgkqhkiG9w0B
AQEFAAOCAg8AMIICCgKCAgEAnAnHLldYwwAkry93YMns2ahE0sQewjlrio/1BE66
zJJW8gcCnY6SWJivBqYxCJSWC+KfM0qH9nME15fbK8kZewEsz7PQY9avNM+wC21s
XEIiTpIHl4v2jq662EL3JpbnAIbNPeTKy1LaabVrzZaewosQEWveUcZCRp2qxvP0
iUQ7MY/zQMhvFPVp5ShlzTaV6e3OOFt5k1hIRXtnF73zPHPYkwW8eqL95faI59V5
9oFKqb2NZty/D19O3EsNlimjPxVqzwKvPKKN1QDU3Dh18As7Acf4RQvZqMQS46/7
Z5gleHJgox/Nm92Dynj4vmVPdhkxm9e1iS+oNnKajM1HpMYgFJfIfrC8HrlpYT+w
LLXb0Z39TigNHWuB+JjYuLqG+wvA2HVbxrIZn6iQcf63t/6BaRXte4yn7HyhbPoZ
odea1NcXxbJCXg2vFZTmlWxf+P7ylilDSzPkokbjo0jxi+xXB5+v1e5CZdn9y8Wm
Hu20SZz/9o3HQ0PAO1wYgfNhjLdMcREMhRY0RC7FobVREfBuzUGr0uomEZM87g4w
AgtBUQ8dyB+txXd5LVQffA62Tja71v479r2xW+EVMM0mA0xHcAEH29IR76kDm6yH
Uh+kuPFxGsnBBPkUS4Nj2r6tUaQBYuBDScXyHrUwh2HlkgRbE/LoKwwfNjtDrprV
B3ECAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4ICAQBXuKo+JirrM43F3WKcGU28h1RV
yZPcp9/7C/Ew4wiOTcCOor7+yYxYuecANNfJHi4bRtDO6H1o+P4e0oTiMtAHCTAn
Ab1vfjfxeIhbdQbxhWphg+lW7FSk8dGJVWxo7mzn5tE2ioMzPaI2EXxeSBgrHZsl
5GvZhnD4VpOc2YfvVR7MBmv2MNaEDcL+qOK+wbliagKMSaZ6zFx0ddYgcGeq+iWP
N3cUrQAmKTiZ/+jRPQr327Ps10K0SAkKzyFjDMX9jkD/wRVjuKhwhS2oL/8hm2pj
PC6CW5inCLfoRjrVkI6Qw3zq/dkU+rld00IPrtc1OH2jmZHvgEdw6viPcFvk6/9b
gfEDXedzw0//modV/S/wuqzg+K8TEralhJiZcO1cMbN9/XkddNgqosPkj/XJliVZ
fkt1WEZ41MQ/lka/YzoxDG5utVWyYVlDZQxa+6nVDA7cS9R1Yk7kEypLXXufLV+h
YF8NU+N2ztKbeEfh0XPkU09hWk8LWHxfCtFkcSAgBVe7ssHSqqXjAuT0kTlzmhAr
q0oahMBdvpOYxROkoBNCKR6pL1g8itNAlS1aX8i31slMCKyVHJhrUITC/nu0eaUo
0Aen05kQUVAxmoGCiMLCu+n7VXjtXPh1jeYys6WTTHBuouNLJXYNGg+HIC0wskLs
ZPv1GorjvdOHjAUSjw==
-----END CERTIFICATE REQUEST-----
54 changes: 54 additions & 0 deletions ssl/server.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,318723F50FE51141

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
-----END RSA PRIVATE KEY-----
52 changes: 52 additions & 0 deletions ssl/server.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
TUo/WvE+FYUNRkGRbtDPjFKfqXZA
-----END PRIVATE KEY-----

0 comments on commit 61e67d4

Please sign in to comment.