주어진 CA 파일에서 SSL 키와 SSL 인증서를 생성하는 방법(인증 기관)

주어진 CA 파일에서 SSL 키와 SSL 인증서를 생성하는 방법(인증 기관)

Azure Cloud MySQL 서버에 대한 암호화된 db 연결을 생성해야 합니다. Azure MySQL 서버에 연결할 때 사용할 수 있도록 "BaltimoreCyberTrustRoot.crt.pem"이라는 CA 인증서를 제공했습니다.

내 질문은 MySQL 서버에 연결할 때 아래와 같이 키와 인증서 파일 모두에 대한 경로를 제공해야 한다는 것입니다. 나만의 파일을 어떻게 생성합니까, 아니면 위의 두 파일도 필요합니까? 공백으로 남겨두면 연결이 안전하지 않거나 덜 안전하다는 의미입니까?

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
           'options'   => array(
                PDO::MYSQL_ATTR_SSL_KEY    => env('CLIENT_KEY', ''),
                PDO::MYSQL_ATTR_SSL_CERT    => env('CLIENT_CERT', ''),
                PDO::MYSQL_ATTR_SSL_CA    => env('CA_CERT', ''),
               PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
            ),
        ],

답변1

KEY와 CERT는 상호 ​​인증, 즉 클라이언트 인증서에 의한 인증에만 사용됩니다. 그러나 이러한 종류의 인증은 여기서 요구 사항이 아닌 것 같으므로 KEY 및 CERT는 전혀 사용되지 않습니다.

그들이 당신에게 준 것은 대신 서버 인증서를 발급한 CA, 즉 CA_CERT입니다.

답변2

클라이언트 인증서를 다루고 있다고 가정합니다.

pem을 별도의 부분/파일로 변환할 수 있습니다. 이것이 해결책이 될 수 있습니다

다음을 사용하여 pem을 crt로 변환할 수 있었습니다.

openssl x509 -outform der -in C:\path\to\your-cert.pem -out C:\path\to\your-cert.crt

그리고 키의 경우:

openssl pkey -in foo.pem -out foo.key

관련 정보