Faits : A. Par ordonnance du 17 février 2017, le Ministère public de l'arrondissement du Nord vaudois a classé la procédure pénale dirigée contre A._ ensuite de la plainte déposée par X._ pour diffamation et violation du secret de fonction. Il a également refusé d'allouer une indemnité fondée sur l'art. 433 CPP à X._ et mis les frais de procédure à sa charge. Il n'a pas alloué d'indemnité fondée sur l'art. 429 CPP à A._, qui n'en avait pas requise. B. Par arrêt du 20 avril 2017, la Chambre des recours pénale du Tribunal cantonal vaudois a partiellement admis le recours formé par X._, en ce sens que les frais de procédure pour la procédure devant le ministère public ont été laissés à la charge de l'Etat. La cour cantonale a en outre mis trois quarts des frais de procédure de deuxième instance (990 fr.) à la charge de X._, lui a alloué, à charge de l'Etat, une indemnité de 330 fr. pour la procédure de recours, a prononcé la compensation de ce montant avec les frais mis à sa charge et a alloué, à la charge de X._, une indemnité de 972 fr. à A._ pour les dépenses occasionnées par l'exercice raisonnable de ses droits de procédure pour la procédure de recours. En bref, il ressort les éléments suivants de l'arrêt précité. Dans le cadre d'une procédure pénale ouverte pour infraction à la LStup, le ministère public a ordonné une surveillance téléphonique du raccordement utilisé, notamment, par X._. Le 1 er juillet 2015 vers 12h20, le prénommé a fait l'objet d'une interpellation par les gendarmes des forces spéciales du DARD (Détachement d'Action Rapide et de Dissuasion). Il a été maintenu dans les locaux de la police jusqu'à 14h45. La police a ensuite relâché l'intéressé après avoir constaté que son intervention n'avait pas permis de vérifier les soupçons à son encontre, en lui indiquant qu'il avait été arrêté par erreur, afin d'éviter de révéler l'enquête en cours. Le 3 juillet 2015, X._ a contacté divers médias afin de dénoncer publiquement son interpellation qu'il jugeait excessive. A la suite de cette médiatisation, le chargé de communication de la police vaudoise, A._, a été contacté par divers journalistes, auxquels il a fait des déclarations, dont le contenu a été avalisé par le procureur en charge de l'enquête et par le Procureur général. Ces déclarations avaient entre autres trait au passé judiciaire de l'intéressé, A._ ayant mentionné une condamnation prononcée en 2006 à Genève pour trafic de stupéfiants et une attaque armée contre les forces publiques commise par l'intéressé dans son pays d'origine. A aucun moment A._ n'a révélé l'identité de X._. C. Dans le cadre de cette affaire, X._ avait formé une demande de récusation du procureur en charge de l'instruction en raison des informations divulguées à la presse sur ses antécédents pénaux, demande qui a été admise par le Tribunal fédéral (arrêt 1B_435/2015 du 25 février 2016). Dans cet arrêt (consid. 2.5), le Tribunal fédéral a estimé que les renseignements sur les antécédents pénaux de X._ communiqués à la presse n'étaient en rien utiles à l'enquête. En outre, l'art. 73 al. 1 CPP instituait, dans le domaine de l'information du public, une obligation générale de garder le silence de la part des autorités pénales. Dans l'hypothèse où il existait des motifs d'informer le public, l'art. 74 al. 3 CPP imposait le respect de la présomption d'innocence du prévenu (art. 10 al. 1 CPP, 32 al. 1 Cst. et 6 par. 2 CEDH) et celui des droits de la personnalité des personnes impliquées (art. 13 Cst. et 8 CEDH). Cela impliquait que seules devaient être divulguées au public les informations indispensables pour atteindre les objectifs nécessaires. Ainsi, le Tribunal fédéral a jugé que la stratégie de communication avalisée par le procureur - laisser entendre que les crimes ou délits commis par le prévenu dans le passé légitimaient, en soi, de le soupçonner de s'être à nouveau fait l'auteur d'infractions - était en contradiction manifeste avec ces principes. D. X._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 20 avril 2017. Il conclut, principalement, à l'annulation de l'arrêt attaqué pour violation de son droit d'être entendu et au renvoi de la cause à l'autorité précédente pour nouvelle décision au sens des considérants. Subsidiairement, il conclut à la réforme de l'arrêt attaqué en ce sens que l'ordonnance de classement du 17 février 2017 est annulée, le dossier renvoyé au ministère public pour qu'il rende une ordonnance pénale à l'encontre de A._ pour diffamation et violation du secret de fonction ou qu'il engage l'accusation pour ces mêmes infractions. Plus subsidiairement, il conclut à la réforme de l'arrêt attaqué en ce sens que les frais de procédure sont mis à la charge de A._ et qu'une indemnité pour les dépenses occasionnées par l'exercice raisonnable de ses droits de procédure pour la procédure devant le ministère public lui est allouée, à charge de A._. Par ordonnance du 2 août 2017, la Cour de droit pénal du Tribunal fédéral a rejeté la requête d'assistance judiciaire de X._. Invités à déposer des observations sur le recours, le ministère public et la cour cantonale y ont renoncé, cette dernière se référant aux considérants de son arrêts, cependant que A._ a conclu à son rejet et à l'allocation de dépens à hauteur de 2000 francs. Ces écritures ont été communiquées à X._ qui a renoncé à se prononcer à leur sujet, par courrier du 20 avril 2018.