2017-12-06 12 views
0

には、httpサーバ(埋め込みソフトウェアソリューション)があります。このhttpサーバはhttps接続を処理するopenssl関数を呼び出しています。httpsサーバでDESを無効にする

私は機能を見つけて、私のHTTPSサーバでDES暗号を無効にする:

SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str); 

私は、OpenSSLに初心者をMと私は機能にSSL_CTX_set_cipher_list()

を渡すために右の文字列を検索します

私のサーバーでDESを無効にするために、SSL_CTX_set_cipher_list()で使用する文字列は何ですか?

ctx = SSL_CTX_new(meth);の直後にSSL_CTX_set_cipher_list()を呼び出すのは正しいですか?

+1

[man ciphers](https://www.openssl.org/docs/man1.0.2/apps/ciphers.html)を調べてください。 DESを無効にするために '...:!DES 'になってしまいますが、3DESはDESと同じではないので注意してください。有用な暗号化文字列については、https://wiki.mozilla.org/Security/Server_Side_TLSを参照してください。 –

答えて

0

SSL_CTX_set_cipher_listの使用例はquestionです。

要約すると、:を区切り記号(wiki opensslのアルゴリズム名を参照してください)を使用してアルゴリズムの文字列を宣言し、サイファーリストを設定する前に(提案どおりに)コンテキストを作成する必要があります。コードではほとんど例:

// List of allowed ciphers in a colon-separated list. 
const char *allowedCiphers = "ECDHE-ECDSA-AES256-SHA384:AES256-GCM-SHA384"; 
int main() 
{ 
    const SSL_METHOD *method; 
    SSL_CTX *ctx; 

    method = SSLv23_server_method(); 
    ctx = SSL_CTX_new(method);  
    // Set the allowed ciphers 
    if (SSL_CTX_set_cipher_list(ctx, ciphers) != 1) 
    { 
    //define error 
    } 
    SSL_CTX_free(ctx); 
    cleanup_openssl(); 
    return 0; 
} 

最後に、私はあなたがthis proposalで見ることができるように、DESは、明示的にコンパイルした場合を除き、デフォルトでは無効になっているので、ライブラリは、DES方式を許可した場合のOpenSSLバージョンを変更することをお勧め。だから、あなたのopenSSLバージョンを更新することを強くお勧めします。

関連する問題