feat: add readme
This commit is contained in:
		
							parent
							
								
									d79f43f6a4
								
							
						
					
					
						commit
						aa713af153
					
				
							
								
								
									
										44
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					# go-grpc-certificate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Problem's context
 | 
				
			||||||
 | 
					I've got some trouble while I want to use gRPC through TLS certificates. I've created a certificated from a .pem key file which had
 | 
				
			||||||
 | 
					a password and I couldn't use it through `go` standard library. I found a solution based on this **[SO answer](https://stackoverflow.com/a/56131169/6329540)** to this **[question](https://stackoverflow.com/questions/56129533/tls-with-certificate-private-key-and-pass-phrase/56131169#comment132834574_56131169)**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Solution
 | 
				
			||||||
 | 
					I've decided to use **[openssl](https://www.openssl.org/docs/manmaster/man1/)** to achieve this task as far as I was not able to found a solution in go standard library.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Installation requirements
 | 
				
			||||||
 | 
					I've used this version on development. So we should check if it backwards compatible.
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					$ openssl version
 | 
				
			||||||
 | 
					OpenSSL 3.0.8 7 Feb 2023 (Library: OpenSSL 3.0.8 7 Feb 2023)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## How to use
 | 
				
			||||||
 | 
					In your `go` project you just have to type in your terminal:
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					$ go get gitea.urkob.com/urko/go-grpc-certificate
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Then place in your code like this
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// here should be defined your imports
 | 
				
			||||||
 | 
					certcreds "gitea.urkob.com/urko/go-grpc-certificate/pkg/credentials"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					    certPath := "place your certificate path"
 | 
				
			||||||
 | 
					    certKeyPath := "place your key file path"
 | 
				
			||||||
 | 
					    keyPassword := "place your key password here"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    creds, err = certcreds.CredentialsFromKeyWithPasswd(
 | 
				
			||||||
 | 
					        certPah, certKeyPath, keyPassword,
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    if err != nil {
 | 
				
			||||||
 | 
					        log.Fatalf("Failed loading certificates: %v\n", err)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user