http_ssl.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. #include "http_define.h"
  3. #if USE_NET_HTTP_WEBSITE
  4. #include <functional>
  5. #include "http_interface.h"
  6. #include <map>
  7. namespace ylib
  8. {
  9. namespace network
  10. {
  11. namespace http
  12. {
  13. class server;
  14. /******************************************************
  15. * class:域名器
  16. ******************************************************/
  17. class ssl :public ylib::error_base, public network::http::interface_
  18. {
  19. public:
  20. /**********************************************************************************************
  21. * function:构造函数
  22. * param
  23. * server : HTTP服务
  24. * verify_type : 验证方式
  25. * pem_cert : 证书内容
  26. * pem_key : 证书密钥
  27. * pem_ca : CA证书
  28. * password : 证书密码,没有留空
  29. **********************************************************************************************/
  30. ssl(network::http::server* server, ssl_verify_type verify_type, const std::string& pem_cert, const std::string& pem_key, const std::string& pem_ca = "", const std::string& password = "");
  31. ~ssl();
  32. /**********************************************************************************************
  33. * function:注册证书
  34. **********************************************************************************************/
  35. bool regist();
  36. /**********************************************************************************************
  37. * function:绑定
  38. **********************************************************************************************/
  39. bool bind(const std::string& host);
  40. private:
  41. ssl_verify_type m_verify_type;
  42. std::string m_pem_cert;
  43. std::string m_pem_key;
  44. std::string m_pem_ca;
  45. std::string m_pem_password;
  46. network::http::server* m_server;
  47. int32 m_index;
  48. };
  49. }
  50. }
  51. }
  52. #endif